[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