[xorg-x11-server] xserver 1.14
Peter Hutterer
whot at fedoraproject.org
Thu Mar 7 00:35:55 UTC 2013
commit cd9fdcb0797711dd36ba0018447fee1399e77592
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Thu Mar 7 09:59:33 2013 +1000
xserver 1.14
.gitignore | 1 +
...fixup-tell-changed-so-randr-clients-can-t.patch | 191 --------------------
...-directly-set-changed-bits-in-randr-scree.patch | 110 +++++++++++
...SetChanged-modify-the-main-protocol-scree.patch | 47 +++++
...-respected-changed-on-the-protocol-screen.patch | 31 ++++
...rt-changes-when-we-disconnect-a-GPU-slave.patch | 61 +++++++
...plug-cleanup-properly-if-the-screen-fails.patch | 38 ----
sources | 2 +-
xorg-x11-server.spec | 20 ++-
9 files changed, 264 insertions(+), 237 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index b4e6cac..d5c69d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,4 @@ xorg-server-1.9.1.tar.bz2
/xorg-server-1.13.1.tar.bz2
/xorg-server-20130109.tar.xz
/xorg-server-20130215.tar.xz
+/xorg-server-1.14.0.tar.bz2
diff --git a/0001-randr-don-t-directly-set-changed-bits-in-randr-scree.patch b/0001-randr-don-t-directly-set-changed-bits-in-randr-scree.patch
new file mode 100644
index 0000000..6aaaeb3
--- /dev/null
+++ b/0001-randr-don-t-directly-set-changed-bits-in-randr-scree.patch
@@ -0,0 +1,110 @@
+From 42ca69172c897713295f7c2b471f0e5d072c920b Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied at redhat.com>
+Date: Wed, 9 Jan 2013 14:32:47 +1000
+Subject: [PATCH] randr: don't directly set changed bits in randr screen
+
+Introduce a wrapper interface so we can fix things up for multi-gpu
+situations later.
+
+This just introduces the API for now.
+
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+Signed-off-by: Fedora X Ninjas <x at fedoraproject.org>
+---
+ randr/randr.c | 8 ++++++++
+ randr/randrstr.h | 4 ++++
+ randr/rrcrtc.c | 2 +-
+ randr/rrinfo.c | 2 +-
+ randr/rroutput.c | 2 +-
+ randr/rrscreen.c | 2 +-
+ 6 files changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/randr/randr.c b/randr/randr.c
+index f0decfc..11f88b2 100644
+--- a/randr/randr.c
++++ b/randr/randr.c
+@@ -464,6 +464,14 @@ TellChanged(WindowPtr pWin, pointer value)
+ return WT_WALKCHILDREN;
+ }
+
++void
++RRSetChanged(ScreenPtr pScreen)
++{
++ rrScrPriv(pScreen);
++
++ pScrPriv->changed = TRUE;
++}
++
+ /*
+ * Something changed; send events and adjust pointer position
+ */
+diff --git a/randr/randrstr.h b/randr/randrstr.h
+index 2517479..2babfed 100644
+--- a/randr/randrstr.h
++++ b/randr/randrstr.h
+@@ -486,6 +486,10 @@ extern _X_EXPORT void
+ RRDeliverScreenEvent(ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
+
+ /* randr.c */
++/* set a screen change on the primary screen */
++extern _X_EXPORT void
++RRSetChanged(ScreenPtr pScreen);
++
+ /*
+ * Send all pending events
+ */
+diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
+index 6e2eca5..b3fb5bd 100644
+--- a/randr/rrcrtc.c
++++ b/randr/rrcrtc.c
+@@ -39,7 +39,7 @@ RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged)
+ if (pScreen) {
+ rrScrPriv(pScreen);
+
+- pScrPriv->changed = TRUE;
++ RRSetChanged(pScreen);
+ /*
+ * Send ConfigureNotify on any layout change
+ */
+diff --git a/randr/rrinfo.c b/randr/rrinfo.c
+index 1408d6f..fc57bd4 100644
+--- a/randr/rrinfo.c
++++ b/randr/rrinfo.c
+@@ -225,7 +225,7 @@ RRScreenSetSizeRange(ScreenPtr pScreen,
+ pScrPriv->minHeight = minHeight;
+ pScrPriv->maxWidth = maxWidth;
+ pScrPriv->maxHeight = maxHeight;
+- pScrPriv->changed = TRUE;
++ RRSetChanged(pScreen);
+ pScrPriv->configChanged = TRUE;
+ }
+
+diff --git a/randr/rroutput.c b/randr/rroutput.c
+index 88781ba..922d61f 100644
+--- a/randr/rroutput.c
++++ b/randr/rroutput.c
+@@ -36,7 +36,7 @@ RROutputChanged(RROutputPtr output, Bool configChanged)
+ output->changed = TRUE;
+ if (pScreen) {
+ rrScrPriv(pScreen);
+- pScrPriv->changed = TRUE;
++ RRSetChanged(pScreen);
+ if (configChanged)
+ pScrPriv->configChanged = TRUE;
+ }
+diff --git a/randr/rrscreen.c b/randr/rrscreen.c
+index 39340cc..36179ae 100644
+--- a/randr/rrscreen.c
++++ b/randr/rrscreen.c
+@@ -143,7 +143,7 @@ RRScreenSizeNotify(ScreenPtr pScreen)
+ pScrPriv->height = pScreen->height;
+ pScrPriv->mmWidth = pScreen->mmWidth;
+ pScrPriv->mmHeight = pScreen->mmHeight;
+- pScrPriv->changed = TRUE;
++ RRSetChanged(pScreen);
+ /* pScrPriv->sizeChanged = TRUE; */
+
+ RRTellChanged(pScreen);
+--
+1.8.1.4
+
diff --git a/0001-randr-make-SetChanged-modify-the-main-protocol-scree.patch b/0001-randr-make-SetChanged-modify-the-main-protocol-scree.patch
new file mode 100644
index 0000000..f37b259
--- /dev/null
+++ b/0001-randr-make-SetChanged-modify-the-main-protocol-scree.patch
@@ -0,0 +1,47 @@
+From 48ea188cac83f2c03913457e1049cc30c27cd395 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied at redhat.com>
+Date: Wed, 9 Jan 2013 14:32:48 +1000
+Subject: [PATCH] randr: make SetChanged modify the main protocol screen not
+ the gpu screen
+
+When SetChanged is called we now modify the main protocol screen,
+not the the gpu screen. Since changed stuff should work at the protocol level.
+
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+Signed-off-by: Fedora X Ninjas <x at fedoraproject.org>
+---
+ randr/randr.c | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/randr/randr.c b/randr/randr.c
+index 11f88b2..fb0895d 100644
+--- a/randr/randr.c
++++ b/randr/randr.c
+@@ -467,9 +467,23 @@ TellChanged(WindowPtr pWin, pointer value)
+ void
+ RRSetChanged(ScreenPtr pScreen)
+ {
++ /* set changed bits on the master screen only */
++ ScreenPtr master;
+ rrScrPriv(pScreen);
++ rrScrPrivPtr mastersp;
++
++ if (pScreen->isGPU) {
++ master = pScreen->current_master;
++ if (!master)
++ return;
++ mastersp = rrGetScrPriv(master);
++ }
++ else {
++ master = pScreen;
++ mastersp = pScrPriv;
++ }
+
+- pScrPriv->changed = TRUE;
++ mastersp->changed = TRUE;
+ }
+
+ /*
+--
+1.8.1.4
+
diff --git a/0001-randr-only-respected-changed-on-the-protocol-screen.patch b/0001-randr-only-respected-changed-on-the-protocol-screen.patch
new file mode 100644
index 0000000..e8269f2
--- /dev/null
+++ b/0001-randr-only-respected-changed-on-the-protocol-screen.patch
@@ -0,0 +1,31 @@
+From 2d05af5ee4844354810cdfcc76eda255a9f6beec Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied at redhat.com>
+Date: Wed, 9 Jan 2013 14:32:49 +1000
+Subject: [PATCH] randr: only respected changed on the protocol screen
+
+We don't want to know about changes on the non-protocol screen,
+we will fix up setchanged to make sure non-protocol screens update
+the protocol screens when they have a change.
+
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+Signed-off-by: Fedora X Ninjas <x at fedoraproject.org>
+---
+ randr/randr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/randr/randr.c b/randr/randr.c
+index fb0895d..cb6fce7 100644
+--- a/randr/randr.c
++++ b/randr/randr.c
+@@ -506,7 +506,7 @@ RRTellChanged(ScreenPtr pScreen)
+ mastersp = pScrPriv;
+ }
+
+- if (pScrPriv->changed) {
++ if (mastersp->changed) {
+ UpdateCurrentTimeIf();
+ if (mastersp->configChanged) {
+ mastersp->lastConfigTime = currentTime;
+--
+1.8.1.4
+
diff --git a/0001-randr-report-changes-when-we-disconnect-a-GPU-slave.patch b/0001-randr-report-changes-when-we-disconnect-a-GPU-slave.patch
new file mode 100644
index 0000000..685108b
--- /dev/null
+++ b/0001-randr-report-changes-when-we-disconnect-a-GPU-slave.patch
@@ -0,0 +1,61 @@
+From 388c8278cf81848635d8b4af75f0ccc189344acf Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied at redhat.com>
+Date: Wed, 9 Jan 2013 14:32:50 +1000
+Subject: [PATCH] randr: report changes when we disconnect a GPU slave
+
+When we disconnect an output/offload slave set the changed bits,
+so a later TellChanged can do something.
+
+Then when we remove a GPU slave device, sent change notification
+to the protocol screen.
+
+This allows hot unplugged USB devices to disappear in clients.
+
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+Signed-off-by: Fedora X Ninjas <x at fedoraproject.org>
+---
+ hw/xfree86/common/xf86platformBus.c | 3 ++-
+ hw/xfree86/modes/xf86RandR12.c | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 2b02e79..4ccb005 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -47,6 +47,7 @@
+ #include "Pci.h"
+ #include "xf86platformBus.h"
+
++#include "randrstr.h"
+ int platformSlotClaimed;
+
+ int xf86_num_platform_devices;
+@@ -497,7 +498,7 @@ xf86platformRemoveDevice(int index)
+ xf86UnclaimPlatformSlot(&xf86_platform_devices[index], NULL);
+
+ xf86_remove_platform_device(index);
+-
++ RRTellChanged(xf86Screens[0]->pScreen);
+ out:
+ return;
+ }
+diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
+index 01fc9c5..7f570cf 100644
+--- a/hw/xfree86/modes/xf86RandR12.c
++++ b/hw/xfree86/modes/xf86RandR12.c
+@@ -1895,10 +1895,12 @@ xf86RandR14ProviderDestroy(ScreenPtr screen, RRProviderPtr provider)
+ if (config->randr_provider->offload_sink) {
+ DetachOffloadGPU(screen);
+ config->randr_provider->offload_sink = NULL;
++ RRSetChanged(screen);
+ }
+ else if (config->randr_provider->output_source) {
+ DetachOutputGPU(screen);
+ config->randr_provider->output_source = NULL;
++ RRSetChanged(screen);
+ }
+ else if (screen->current_master)
+ DetachUnboundGPU(screen);
+--
+1.8.1.4
+
diff --git a/sources b/sources
index 43f929c..b67c289 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-56777b1f9d3342eaf5c37c61b9adc6ba xorg-server-20130215.tar.xz
+86110278b784e279381b7f6f2295c508 xorg-server-1.14.0.tar.bz2
diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec
index 3934d0b..4ec634c 100644
--- a/xorg-x11-server.spec
+++ b/xorg-x11-server.spec
@@ -8,8 +8,8 @@
# format, and add a PatchN: line. If you want to push something upstream,
# check out the master branch, pull, cherry-pick, and push.
-%global gitdate 20130215
-%global stable_abi 0
+#global gitdate 20130215
+%global stable_abi 1
%if !0%{?gitdate} || %{stable_abi}
# Released ABI versions. Have to keep these manually in sync with the
@@ -41,8 +41,8 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
-Version: 1.13.99.902
-Release: 2%{?gitdate:.%{gitdate}}%{dist}
+Version: 1.14.0
+Release: 1%{?gitdate:.%{gitdate}}%{dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X
@@ -105,13 +105,16 @@ Patch7052: 0001-xf86-return-NULL-for-compat-output-if-no-outputs.patch
Patch7064: 0001-mieq-Bump-default-queue-size-to-512.patch
# some hotplug fixes/workaround
-Patch7065: 0001-xfree86-hotplug-cleanup-properly-if-the-screen-fails.patch
Patch7066: 0001-xf86crtc-don-t-use-display-for-vx-vy-for-gpu-screens.patch
# autoconfig: send events
-Patch7067: 0001-autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
+Patch7067: 0001-randr-don-t-directly-set-changed-bits-in-randr-scree.patch
+Patch7068: 0001-randr-make-SetChanged-modify-the-main-protocol-scree.patch
+Patch7069: 0001-randr-only-respected-changed-on-the-protocol-screen.patch
+Patch7070: 0001-randr-report-changes-when-we-disconnect-a-GPU-slave.patch
+
# upstream in -next for 1.15, e21e183059df5975e7086850d1931edb2c1bbd06
-Patch7070: 0001-os-use-libunwind-to-generate-backtraces.patch
+Patch7071: 0001-os-use-libunwind-to-generate-backtraces.patch
%global moduledir %{_libdir}/xorg/modules
%global drimoduledir %{_libdir}/dri
@@ -580,6 +583,9 @@ rm -rf $RPM_BUILD_ROOT
%{xserver_source_dir}
%changelog
+* Thu Mar 07 2013 Peter Hutterer <peter.hutterer at redhat.com> 1.14.0-1
+- xserver 1.14
+
* Wed Mar 06 2013 Peter Hutterer <peter.hutterer at redhat.com> 1.13.99.902-2
- Use libunwind for backtraces
More information about the scm-commits
mailing list