[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'debian-unstable'



 debian/changelog                                                      |   11 +
 debian/patches/make-sure-hw-cursor-is-hidden-when-it-should.diff      |   36 +++
 debian/patches/os-treat-ssh-as-a-non-local-client.diff                |   97 ++++++++++
 debian/patches/present-only-requeue-for-next-msc-after-flip-fail.diff |   35 +++
 debian/patches/revert-eb5108b870.diff                                 |   35 ---
 debian/patches/series                                                 |    5 
 6 files changed, 183 insertions(+), 36 deletions(-)

New commits:
commit fe1d88778d3940550f30b85a7323fc1e3935eaaa
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Tue Mar 29 10:39:02 2016 +0300

    release to unstable

diff --git a/debian/changelog b/debian/changelog
index 2374ba2..9169531 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.18.2-3) UNRELEASED; urgency=medium
+xorg-server (2:1.18.2-3) unstable; urgency=medium
 
   * regression fixes part2:
     - replace revert-eb5108b870.diff with patch from upstream
@@ -7,7 +7,7 @@ xorg-server (2:1.18.2-3) UNRELEASED; urgency=medium
   * os-treat-ssh-as-a-non-local-client.diff: Allow remote clients to work
     with DRI3.
 
- -- Timo Aaltonen <tjaalton@debian.org>  Tue, 29 Mar 2016 10:16:23 +0300
+ -- Timo Aaltonen <tjaalton@debian.org>  Tue, 29 Mar 2016 10:38:47 +0300
 
 xorg-server (2:1.18.2-2) unstable; urgency=medium
 

commit 99ea495eaeacfcbe5defa412d6922a0966c27c3a
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Tue Mar 29 10:34:50 2016 +0300

    more regression fixes, plus fix remote clients with DRI3

diff --git a/debian/changelog b/debian/changelog
index 24902b1..2374ba2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+xorg-server (2:1.18.2-3) UNRELEASED; urgency=medium
+
+  * regression fixes part2:
+    - replace revert-eb5108b870.diff with patch from upstream
+    - make-sure-hw-cursor-is-hidden-when-it-should.diff: Don't show an
+      extra cursor in some cases
+  * os-treat-ssh-as-a-non-local-client.diff: Allow remote clients to work
+    with DRI3.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Tue, 29 Mar 2016 10:16:23 +0300
+
 xorg-server (2:1.18.2-2) unstable; urgency=medium
 
   * regression fixes/workarounds:
diff --git a/debian/patches/make-sure-hw-cursor-is-hidden-when-it-should.diff b/debian/patches/make-sure-hw-cursor-is-hidden-when-it-should.diff
new file mode 100644
index 0000000..4e1b26b
--- /dev/null
+++ b/debian/patches/make-sure-hw-cursor-is-hidden-when-it-should.diff
@@ -0,0 +1,36 @@
+commit 418fe365b45a143680d3b4143dc60f7cdc5a3507
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date:   Thu Mar 24 17:34:23 2016 +0900
+
+    xfree86/modes: Make sure the HW cursor is hidden when it should be
+    
+    When the HW cursor is hidden (e.g. because xf86CursorResetCursor
+    triggers a switch from HW cursor to SW cursor), the driver isn't
+    notified of this for disabled CRTCs. If the HW cursor was shown when the
+    CRTC was disabled, it may still be displayed when the CRTC is enabled
+    again.
+    
+    Prevent this by explicitly hiding the HW cursor again after setting a
+    mode if it's currently supposed to be hidden.
+    
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94560
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+
+diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
+index 2639a30..6091b5e 100644
+--- a/hw/xfree86/modes/xf86Crtc.c
++++ b/hw/xfree86/modes/xf86Crtc.c
+@@ -368,6 +368,12 @@ xf86CrtcSetModeTransform(xf86CrtcPtr crtc, DisplayModePtr mode,
+             xf86CrtcSetScreenSubpixelOrder(scrn->pScreen);
+         if (scrn->ModeSet)
+             scrn->ModeSet(scrn);
++
++        /* Make sure the HW cursor is hidden if it's supposed to be, in case
++         * it was hidden while the CRTC was disabled
++         */
++        if (!xf86_config->cursor_on)
++            xf86_hide_cursors(scrn);
+     }
+     else {
+         crtc->x = saved_x;
diff --git a/debian/patches/os-treat-ssh-as-a-non-local-client.diff b/debian/patches/os-treat-ssh-as-a-non-local-client.diff
new file mode 100644
index 0000000..0b879bf
--- /dev/null
+++ b/debian/patches/os-treat-ssh-as-a-non-local-client.diff
@@ -0,0 +1,97 @@
+commit adefbaee499b9679c6cac21f52ec6545af2b36b5
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Mon Mar 28 18:11:09 2016 +0900
+
+    os: Treat ssh as a non-local client (v4)
+    
+    By the time we get to ComputeLocalClient, we've already done
+    NextAvailableClient → ReserveClientIds → DetermineClientCmd (assuming
+    we're built with #define CLIENTIDS), so we can look up the name of the
+    client process and refuse to treat ssh's X forwarding as if it were
+    local.
+    
+    v2: (Michel Dänzer)
+        * Only match "ssh" itself, not other executable names starting with
+          that prefix.
+        * Ignore executable path for the match.
+    v3: (Michel Dänzer)
+        * Use GetClientCmdName (Mark Kettenis)
+        * Perform check on Windows as well, but only ignore path on Cygwin
+          (Martin Peres, Emil Velikov, Jon Turney)
+    v4: (Michel Dänzer)
+        * Cut of any colon and whatever comes after it. (Adam Jackson)
+        * Add bugzilla reference.
+    
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93261
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+
+diff --git a/os/access.c b/os/access.c
+index 8b2177f..58f95a9 100644
+--- a/os/access.c
++++ b/os/access.c
+@@ -173,6 +173,10 @@ SOFTWARE.
+ 
+ #endif                          /* WIN32 */
+ 
++#if !defined(WIN32) || defined(__CYGWIN__)
++#include <libgen.h>
++#endif
++
+ #define X_INCLUDE_NETDB_H
+ #include <X11/Xos_r.h>
+ 
+@@ -1080,9 +1084,8 @@ ResetHosts(const char *display)
+     }
+ }
+ 
+-/* Is client on the local host */
+-Bool
+-ComputeLocalClient(ClientPtr client)
++static Bool
++xtransLocalClient(ClientPtr client)
+ {
+     int alen, family, notused;
+     Xtransaddr *from = NULL;
+@@ -1115,6 +1118,40 @@ ComputeLocalClient(ClientPtr client)
+     return FALSE;
+ }
+ 
++/* Is client on the local host */
++Bool
++ComputeLocalClient(ClientPtr client)
++{
++    const char *cmdname = GetClientCmdName(client);
++
++    if (!xtransLocalClient(client))
++        return FALSE;
++
++    /* If the executable name is "ssh", assume that this client connection
++     * is forwarded from another host via SSH
++     */
++    if (cmdname) {
++        char **cmd;
++        Bool ret;
++
++        /* Cut off any colon and whatever comes after it, see
++         * https://lists.freedesktop.org/archives/xorg-devel/2015-December/048164.html
++         */
++        cmd = xstrtokenize(cmdname, ":");
++
++#if !defined(WIN32) || defined(__CYGWIN__)
++        cmd[0] = basename(cmd[0]);
++#endif
++
++        ret = strcmp(cmd[0], "ssh") != 0;
++        free(cmd);
++
++        return ret;
++    }
++
++    return TRUE;
++}
++
+ /*
+  * Return the uid and all gids of a connected local client
+  * Allocates a LocalClientCredRec - caller must call FreeLocalClientCreds
diff --git a/debian/patches/present-only-requeue-for-next-msc-after-flip-fail.diff b/debian/patches/present-only-requeue-for-next-msc-after-flip-fail.diff
new file mode 100644
index 0000000..6794fc7
--- /dev/null
+++ b/debian/patches/present-only-requeue-for-next-msc-after-flip-fail.diff
@@ -0,0 +1,35 @@
+commit 3b385105b2d19a1c55e9779ae88d775185eea231
+Author: Michel Dänzer <michel.daenzer@amd.com>
+Date:   Thu Mar 24 17:42:47 2016 +0900
+
+    present: Only requeue for next MSC after flip failure
+    
+    This code was added to deal with the driver present hook failing, in
+    which case we need to wait for the next MSC before executing the
+    presentation.
+    
+    However, it could also take effect in cases where the driver incorrectly
+    thinks the current MSC matches the target one (e.g. due to the kernel
+    interface only supporting 32-bit MSC values), in which case it could
+    result in the presentation getting requeued over and over.
+    
+    To prevent such issues, check specifically for the target MSC
+    immediately following the current MSC.
+    
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94596
+    Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+
+diff --git a/present/present.c b/present/present.c
+index 55f6aa7..105e2bf 100644
+--- a/present/present.c
++++ b/present/present.c
+@@ -726,7 +726,7 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
+         }
+ 
+         /* If present_flip failed, we may have to requeue for the target MSC */
+-        if (msc_is_after(vblank->target_msc, crtc_msc) &&
++        if (vblank->target_msc == crtc_msc + 1 &&
+             Success == present_queue_vblank(screen,
+                                             vblank->crtc,
+                                             vblank->event_id,
diff --git a/debian/patches/revert-eb5108b870.diff b/debian/patches/revert-eb5108b870.diff
deleted file mode 100644
index 0b4e59d..0000000
--- a/debian/patches/revert-eb5108b870.diff
+++ /dev/null
@@ -1,35 +0,0 @@
-this reverts:
-
-commit eb5108b87017128f394ae31b5b7cd85dd8819bca
-Author: Michel Dänzer <michel.daenzer@amd.com>
-Date:   Wed Feb 24 16:52:58 2016 +0900
-
-    present: Requeue if flip driver hook fails and target MSC not reached
-
-some intel users suffer from frozen X because of it
-
-diff --git b/present/present.c a/present/present.c
-index 7f9fc17..17ec526 100644
---- b/present/present.c
-+++ a/present/present.c
-@@ -712,20 +712,6 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
-             if (window == screen_priv->flip_window)
-                 present_unflip(screen);
-         }
--
--        /* If present_flip failed, we may have to requeue for the target MSC */
--        if (msc_is_after(vblank->target_msc, crtc_msc) &&
--            Success == present_queue_vblank(screen,
--                                            vblank->crtc,
--                                            vblank->event_id,
--                                            vblank->target_msc)) {
--            xorg_list_add(&vblank->event_queue, &present_exec_queue);
--            xorg_list_append(&vblank->window_list,
--                             &present_get_window_priv(window, TRUE)->vblank);
--            vblank->queued = TRUE;
--            return;
--        }
--
-         present_copy_region(&window->drawable, vblank->pixmap, vblank->update, vblank->x_off, vblank->y_off);
- 
-         /* present_copy_region sticks the region into a scratch GC,
diff --git a/debian/patches/series b/debian/patches/series
index 5440ad0..4429400 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,4 +9,7 @@
 # 1.18.2 regression fixes/workarounds
 vidmode-reduce-verbosity-of-getmodeline.diff
 glamor-swizzle-red-to-0-for-alpha-textures.diff
-revert-eb5108b870.diff
+present-only-requeue-for-next-msc-after-flip-fail.diff
+make-sure-hw-cursor-is-hidden-when-it-should.diff
+
+os-treat-ssh-as-a-non-local-client.diff


Reply to: