"Fossies" - the Fresh Open Source Software Archive

Member "xorg-server-21.1.9/ChangeLog" (25 Oct 2023, 7761517 Bytes) of package /linux/misc/xorg-server-21.1.9.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.


    1 commit 6197bea02eec072c19aa5365962e89949e674099
    2 Author: Peter Hutterer <peter.hutterer@who-t.net>
    3 Date:   Wed Oct 25 11:05:28 2023 +1000
    4 
    5     xserver 21.1.9
    6     
    7     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    8 
    9 commit 3e290b3c7c3018acf1f08979d014fe3941c94f84
   10 Author: Peter Hutterer <peter.hutterer@who-t.net>
   11 Date:   Thu Oct 5 12:19:45 2023 +1000
   12 
   13     mi: reset the PointerWindows reference on screen switch
   14     
   15     PointerWindows[] keeps a reference to the last window our sprite
   16     entered - changes are usually handled by CheckMotion().
   17     
   18     If we switch between screens via XWarpPointer our
   19     dev->spriteInfo->sprite->win is set to the new screen's root window.
   20     If there's another window at the cursor location CheckMotion() will
   21     trigger the right enter/leave events later. If there is not, it skips
   22     that process and we never trigger LeaveWindow() - PointerWindows[] for
   23     the device still refers to the previous window.
   24     
   25     If that window is destroyed we have a dangling reference that will
   26     eventually cause a use-after-free bug when checking the window hierarchy
   27     later.
   28     
   29     To trigger this, we require:
   30     - two protocol screens
   31     - XWarpPointer to the other screen's root window
   32     - XDestroyWindow before entering any other window
   33     
   34     This is a niche bug so we hack around it by making sure we reset the
   35     PointerWindows[] entry so we cannot have a dangling pointer. This
   36     doesn't handle Enter/Leave events correctly but the previous code didn't
   37     either.
   38     
   39     CVE-2023-5380, ZDI-CAN-21608
   40     
   41     This vulnerability was discovered by:
   42     Sri working with Trend Micro Zero Day Initiative
   43     
   44     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
   45     Reviewed-by: Adam Jackson <ajax@redhat.com>
   46     (cherry picked from commit 564ccf2ce9616620456102727acb8b0256b7bbd7)
   47 
   48 commit f2922f6ffa871b0d549878303ca09bc53cdadcf8
   49 Author: Peter Hutterer <peter.hutterer@who-t.net>
   50 Date:   Tue Oct 3 11:53:05 2023 +1000
   51 
   52     Xi/randr: fix handling of PropModeAppend/Prepend
   53     
   54     The handling of appending/prepending properties was incorrect, with at
   55     least two bugs: the property length was set to the length of the new
   56     part only, i.e. appending or prepending N elements to a property with P
   57     existing elements always resulted in the property having N elements
   58     instead of N + P.
   59     
   60     Second, when pre-pending a value to a property, the offset for the old
   61     values was incorrect, leaving the new property with potentially
   62     uninitalized values and/or resulting in OOB memory writes.
   63     For example, prepending a 3 element value to a 5 element property would
   64     result in this 8 value array:
   65       [N, N, N, ?, ?, P, P, P ] P, P
   66                                 ^OOB write
   67     
   68     The XI2 code is a copy/paste of the RandR code, so the bug exists in
   69     both.
   70     
   71     CVE-2023-5367, ZDI-CAN-22153
   72     
   73     This vulnerability was discovered by:
   74     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
   75     
   76     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
   77     (cherry picked from commit 541ab2ecd41d4d8689e71855d93e492bc554719a)
   78 
   79 commit 2c33ee9f1d6da648a5176795608eb3138ef46e49
   80 Author: Sam James <sam@gentoo.org>
   81 Date:   Wed Aug 2 12:33:19 2023 +0100
   82 
   83     Switch to libbsd-overlay
   84     
   85     This is more portable than libbsd as everything Just Works, even on BSD systems,
   86     and is the recommended method of consuming libbsd nowadays.
   87     
   88     It also helpfully lets things work with glibc-provided functions for new
   89     enough glibc.
   90     
   91     [For the 21.1.x backport, take inspiration from @alanc's commit to libxdmcp
   92     at https://gitlab.freedesktop.org/xorg/lib/libxdmcp/-/commit/c01da8ebd0969efd15388ce999e121127cc46f67.]
   93     
   94     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/973
   95     Co-authored-by: Guillem Jover <guillem@hadrons.org>
   96     (cherry picked from commit 94945a52746ee2612c6cd394692f49e2ed5fc56b)
   97     Signed-off-by: Sam James <sam@gentoo.org>
   98 
   99 commit b98fc07d3442a289c6bef82df50dd0a2d01de71a
  100 Author: Adam Jackson <ajax@redhat.com>
  101 Date:   Thu Feb 2 12:26:27 2023 -0500
  102 
  103     present: Send a PresentConfigureNotify event for destroyed windows
  104     
  105     This enables fixing a deadlock case on the client side, where the client
  106     ends up blocked waiting for a Present event that will never come because
  107     the window was destroyed. The new PresentWindowDestroyed flag allows the
  108     client to avoid blocking indefinitely.
  109     
  110     Signed-off-by: Adam Jackson <ajax@redhat.com>
  111     See-also: https://gitlab.freedesktop.org/mesa/mesa/-/issues/116
  112     See-also: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6685
  113     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
  114     (cherry picked from commit 462b06033e66a32308d940eb5fc47f5e4c914dc0)
  115 
  116 commit 7c791b15504cc86a929acaa88161f012cdbba59f
  117 Author: Olivier Fourdan <ofourdan@redhat.com>
  118 Date:   Wed Mar 29 13:58:30 2023 +0200
  119 
  120     xserver 21.1.8
  121     
  122     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
  123 
  124 commit fb51d5dd53b02422ea3b6f36bd017488d41f472d
  125 Author: Olivier Fourdan <ofourdan@redhat.com>
  126 Date:   Mon Mar 13 11:08:47 2023 +0100
  127 
  128     composite: Fix use-after-free of the COW
  129     
  130     ZDI-CAN-19866/CVE-2023-1393
  131     
  132     If a client explicitly destroys the compositor overlay window (aka COW),
  133     we would leave a dangling pointer to that window in the CompScreen
  134     structure, which will trigger a use-after-free later.
  135     
  136     Make sure to clear the CompScreen pointer to the COW when the latter gets
  137     destroyed explicitly by the client.
  138     
  139     This vulnerability was discovered by:
  140     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  141     
  142     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
  143     Reviewed-by: Adam Jackson <ajax@redhat.com>
  144     (cherry picked from commit 26ef545b3502f61ca722a7a3373507e88ef64110)
  145 
  146 commit 6bed5cfd515b9634ecf73fb884e4ec3388e8b7eb
  147 Author: Benno Schulenberg <bensberg@telfort.nl>
  148 Date:   Mon Mar 27 20:03:56 2023 +0200
  149 
  150     xkbUtils: use existing symbol names instead of deleted deprecated ones
  151     
  152     Symbols `XK_Cyrillic_DZHE` and `XK_Serbian_DZE` were pure synonyms.
  153     
  154     (cherry picked from commit 6153c71cfb4698f1a416266564ecc748e4a25f2c)
  155 
  156 commit af9111ac7fa399a5a33fbfa145060e1850f41e0e
  157 Author: Peter Hutterer <peter.hutterer@who-t.net>
  158 Date:   Tue Feb 7 10:30:37 2023 +1000
  159 
  160     xserver 21.1.7
  161     
  162     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  163 
  164 commit 9ca7d3f61a88ae6cf47fdf139b6215d745db976b
  165 Author: Peter Hutterer <peter.hutterer@who-t.net>
  166 Date:   Wed Jan 25 11:41:40 2023 +1000
  167 
  168     Xi: fix potential use-after-free in DeepCopyPointerClasses
  169     
  170     CVE-2023-0494, ZDI-CAN-19596
  171     
  172     This vulnerability was discovered by:
  173     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  174     
  175     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  176     (cherry picked from commit 0ba6d8c37071131a49790243cdac55392ecf71ec)
  177 
  178 commit 4b925d388f76764dcb02dfd1cd7276262dcd7d74
  179 Author: Mike Gorse <mgorse@suse.com>
  180 Date:   Wed Jan 25 02:02:48 2023 +0000
  181 
  182     dix: Use CopyPartialInternalEvent in EnqueueEvent
  183     
  184     The event might be a DeviceEvent allocated on the stack, in
  185     AccessXKeyboardEvent for instance. Fixes out-of-bounds read.
  186     
  187     Signed-off-by: Mike Gorse <mgorse@suse.com>
  188     (cherry picked from commit 2ef5ef57bd37a8bec2ac454053b283c6f87c3b40)
  189 
  190 commit 44d6c82ac82a78d904a6d47387ac363d9699b891
  191 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  192 Date:   Wed Jan 18 10:38:41 2023 -0800
  193 
  194     darwin: Implement DetermineClientCmd for macOS
  195     
  196     Withoug a proper implementation of DetermineClientCmd, clients that
  197     connect via an ssh tunnel are miscategorized as local.  This results
  198     in failures when we try to use SCM_RIGHTS (eg: in MIT-SHM).
  199     
  200     Fixes: https://github.com/XQuartz/XQuartz/issues/314
  201     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  202     (cherry picked from commit 0ea9b595891f2f31915538192961f3404d9ca699)
  203 
  204 commit 1317083fbc407dc9dbb04ba5b98187b75222a16f
  205 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  206 Date:   Wed Jan 18 12:19:05 2023 -0800
  207 
  208     os: Use LOCAL_PEERPID from sys/un.h if it is available to detemine the pid when falling back on getpeereids()
  209     
  210     This provides a way to determine the pid of a peer connection on
  211     systems like darwin that do not support getpeerucred() nor
  212     SO_PEERCRED.
  213     
  214     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  215     (cherry picked from commit 8a4ab2287398773a4868c220662d93bf84ec6241)
  216 
  217 commit a6c49106cef36e84eb11d64e325465250b7678be
  218 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  219 Date:   Wed Jan 18 12:02:54 2023 -0800
  220 
  221     os: Update GetLocalClientCreds to prefer getpeerucred() or SO_PEERCRED over getpeereid()
  222     
  223     GetLocalClientCreds() was preferring getpeereid() above other implementations.
  224     
  225     getpeereid(), however, only returns the effective uid and gid of the peer,
  226     leaving the pid unset.  When this happens, we are unable to use the pid to
  227     determine the peer's command line arguments and incorrectly treat ssh-tunneled
  228     traffic as local.
  229     
  230     To address this, we now prioritize getpeerucred() or SO_PEERCRED as those two
  231     implementations will return the pid in addition to uid and gid.
  232     
  233     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  234     (cherry picked from commit 165d5c1260edcb998c5cf31d3969723c7452aa7f)
  235 
  236 commit a220f53cb81248d06fb6f044c102c6ab8bffe2d5
  237 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  238 Date:   Wed Jan 18 10:44:27 2023 -0800
  239 
  240     os: Update AllocNewConnection() debug logging to include whether or not the client is local
  241     
  242     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  243     (cherry picked from commit 2577291f010e07173d0fc8b310ac355928f8ed7d)
  244 
  245 commit 07f9689507eee11bdbc2828ac1319fbde91ad27c
  246 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  247 Date:   Sun Nov 27 22:25:49 2022 -0800
  248 
  249     Revert "meson: Don't build COMPOSITE for XQuartz"
  250     
  251     This will allow us to remove build-time conditionalization on COMPOSITE
  252     while still allowing XQuartz to disable it and use ROOTLESS.
  253     
  254     This reverts commit 5f2d652377995c0c0c3cf07463b5018450661d13
  255     
  256     (cherry picked from commit 66e7b7349dffda6fef51ed029fdc91b787ca4c08)
  257 
  258 commit 8ea43dd8bf8f8f2cb82a2a1f2c004ee873e7810d
  259 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  260 Date:   Sun Nov 27 22:23:43 2022 -0800
  261 
  262     xquartz: Disable COMPOSITE at runtime
  263     
  264     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  265     (cherry picked from commit 2567388a2957cef526df1b7efb2684aa74feb641)
  266 
  267 commit aa0d8d440c39beb276cd26723d822728ce394e01
  268 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  269 Date:   Tue Jan 17 07:33:19 2023 -0800
  270 
  271     xquartz: Update the about box copyright to 2023
  272     
  273     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  274     (cherry picked from commit 15077090d371a2679d274c5d129a3102762d18ec)
  275 
  276 commit 8feba178f8b73b983033c197c384c580a6397a41
  277 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  278 Date:   Sat Jan 14 23:33:59 2023 -0800
  279 
  280     xquartz: Fix building with autoconf
  281     
  282     Regressed-in: 5d302c378d9d21b34db2434425b766ac4f05de89
  283     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  284 
  285 commit c8ef9e38187e00dbaf956893f987e15e8f42f61c
  286 Author: Olivier Fourdan <ofourdan@redhat.com>
  287 Date:   Tue Jul 12 14:44:48 2022 +0200
  288 
  289     dix: Fix overzealous caching of ResourceClientBits()
  290     
  291     Commit c7311654 cached the value of ResourceClientBits(), but that value
  292     depends on the `MaxClients` value set either from the command line or
  293     from the configuration file.
  294     
  295     For the latter, a call to ResourceClientBits() is issued before the
  296     configuration file is read, meaning that the cached value is from the
  297     default, not from the maximum number of clients set in the configuration
  298     file.
  299     
  300     That obviously causes all sort of issues, including memory corruption
  301     and crashes of the Xserver when reaching the default limit value.
  302     
  303     To avoid that issue, also keep the LimitClient value, and recompute the
  304     ilog2() value if that changes, as on startup when the value is set from
  305     the the xorg.conf ServerFlags section.
  306     
  307     v2: Drop the `cache == 0` test
  308         Rename cache vars
  309     
  310     Fixes: c7311654 - dix: cache ResourceClientBits() value
  311     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1310
  312     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
  313     Reviewed-by: Adam Jackson <ajax@redhat.com>
  314     (cherry picked from commit 2efa6d659508346358a1ef27b2393e18843f66a3)
  315 
  316 commit a0216de2367429788be4ef430026ada215106ff5
  317 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  318 Date:   Wed Dec 14 23:45:13 2022 -0800
  319 
  320     rootless: Add additional debug logging to help triage XQuartz fb/rootless/damage crashes
  321     
  322     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  323     (cherry picked from commit 07ed1a623a4b36cdb741a322008ba53d913dc765)
  324 
  325 commit 264272f3d76e4f1e50d984640c57de77aca9ba37
  326 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  327 Date:   Wed Dec 14 17:07:46 2022 -0800
  328 
  329     xquartz: Use xorg_backtrace() instead of rolling our own for debugging
  330     
  331     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  332     (cherry picked from commit d1a9a50792110683ae3f993eeeffeee79cf9cbce)
  333 
  334 commit 20f380c6d93be3ef561251584163d1fe1ae2d966
  335 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  336 Date:   Wed Dec 21 01:18:11 2022 -0800
  337 
  338     xquartz: Ignore SIGPIPE at process launch
  339     
  340     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  341     (cherry picked from commit 9a66690eaf67c19b90e07f39b16436d34b59e27a)
  342 
  343 commit 59b6fc88ed9f4b22397a568c2483e4c558856ffa
  344 Author: Olivier Fourdan <ofourdan@redhat.com>
  345 Date:   Mon Dec 19 10:46:20 2022 +0100
  346 
  347     xserver 21.1.6
  348     
  349     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
  350 
  351 commit b7760d41c177983c2f2fca2ebdb8105628291720
  352 Author: Peter Hutterer <peter.hutterer@who-t.net>
  353 Date:   Mon Dec 19 10:06:45 2022 +1000
  354 
  355     Xext: fix invalid event type mask in XTestSwapFakeInput
  356     
  357     In commit b320ca0 the mask was inadvertently changed from octal 0177 to
  358     hexadecimal 0x177.
  359     
  360     Fixes commit b320ca0ffe4c0c872eeb3a93d9bde21f765c7c63
  361       Xtest: disallow GenericEvents in XTestSwapFakeInput
  362     
  363     Found by Stuart Cassoff
  364     
  365     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  366     (cherry picked from commit bb1711b7fba42f2a0c7d1c09beee241a1b2bcc30)
  367 
  368 commit 69ab3bcaa0f6a5adef6ec19161eb856a4744b32c
  369 Author: Peter Hutterer <peter.hutterer@who-t.net>
  370 Date:   Wed Jul 13 11:23:09 2022 +1000
  371 
  372     xkb: fix some possible memleaks in XkbGetKbdByName
  373     
  374     GetComponentByName returns an allocated string, so let's free that if we
  375     fail somewhere.
  376     
  377     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  378     (cherry picked from commit 18f91b950e22c2a342a4fbc55e9ddf7534a707d2)
  379 
  380 commit 5dbb2b52cfeab212b5c9b7e344692a6384efdc4c
  381 Author: Peter Hutterer <peter.hutterer@who-t.net>
  382 Date:   Tue Jul 5 12:06:20 2022 +1000
  383 
  384     xkb: proof GetCountedString against request length attacks
  385     
  386     GetCountedString did a check for the whole string to be within the
  387     request buffer but not for the initial 2 bytes that contain the length
  388     field. A swapped client could send a malformed request to trigger a
  389     swaps() on those bytes, writing into random memory.
  390     
  391     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  392     (cherry picked from commit 11beef0b7f1ed290348e45618e5fa0d2bffcb72e)
  393 
  394 commit becf9d51c33a21e7700b18bb2324f466bb966de5
  395 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  396 Date:   Wed Dec 14 00:13:34 2022 -0800
  397 
  398     xquartz: Fix some formatting
  399     
  400     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  401 
  402 commit 61d18bed664769b1d94ea1320e27f71560a01af2
  403 Author: John D Pell <John+git@gaelicWizard.net>
  404 Date:   Tue Jul 13 23:46:28 2021 -0700
  405 
  406     XQuartz: stub: Call LSOpenApplication instead of fork()/exec()
  407     
  408     Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  409 
  410 commit f292fbfaac0c653ee49bbb24deb3add2b5da602f
  411 Author: Peter Hutterer <peter.hutterer@who-t.net>
  412 Date:   Wed Dec 14 11:34:41 2022 +1000
  413 
  414     xserver 21.1.5
  415     
  416     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  417 
  418 commit e860bbce4fdb169e84033529331ae2666e679de7
  419 Author: Peter Hutterer <peter.hutterer@who-t.net>
  420 Date:   Mon Dec 5 15:55:54 2022 +1000
  421 
  422     xkb: reset the radio_groups pointer to NULL after freeing it
  423     
  424     Unlike other elements of the keymap, this pointer was freed but not
  425     reset. On a subsequent XkbGetKbdByName request, the server may access
  426     already freed memory.
  427     
  428     CVE-2022-4283, ZDI-CAN-19530
  429     
  430     This vulnerability was discovered by:
  431     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  432     
  433     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  434     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
  435     (cherry picked from commit ccdd431cd8f1cabae9d744f0514b6533c438908c)
  436 
  437 commit 8a1fa008b2f90abce6cabb27d9bc2ed76d07b678
  438 Author: Peter Hutterer <peter.hutterer@who-t.net>
  439 Date:   Tue Nov 29 13:26:57 2022 +1000
  440 
  441     Xi: avoid integer truncation in length check of ProcXIChangeProperty
  442     
  443     This fixes an OOB read and the resulting information disclosure.
  444     
  445     Length calculation for the request was clipped to a 32-bit integer. With
  446     the correct stuff->num_items value the expected request size was
  447     truncated, passing the REQUEST_FIXED_SIZE check.
  448     
  449     The server then proceeded with reading at least stuff->num_items bytes
  450     (depending on stuff->format) from the request and stuffing whatever it
  451     finds into the property. In the process it would also allocate at least
  452     stuff->num_items bytes, i.e. 4GB.
  453     
  454     The same bug exists in ProcChangeProperty and ProcXChangeDeviceProperty,
  455     so let's fix that too.
  456     
  457     CVE-2022-46344, ZDI-CAN 19405
  458     
  459     This vulnerability was discovered by:
  460     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  461     
  462     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  463     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
  464     (cherry picked from commit 8f454b793e1f13c99872c15f0eed1d7f3b823fe8)
  465 
  466 commit 40f431de8a76f737c68ae659fee8472583f15e49
  467 Author: Peter Hutterer <peter.hutterer@who-t.net>
  468 Date:   Tue Nov 29 13:24:00 2022 +1000
  469 
  470     Xi: return an error from XI property changes if verification failed
  471     
  472     Both ProcXChangeDeviceProperty and ProcXIChangeProperty checked the
  473     property for validity but didn't actually return the potential error.
  474     
  475     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  476     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
  477     (cherry picked from commit b8a84cb0f2807b07ab70ca9915fcdee21301b8ca)
  478 
  479 commit d6c7de9eadca980c8ce3b3b7752b67bfa95e6f31
  480 Author: Peter Hutterer <peter.hutterer@who-t.net>
  481 Date:   Tue Nov 29 14:53:07 2022 +1000
  482 
  483     Xext: free the screen saver resource when replacing it
  484     
  485     This fixes a use-after-free bug:
  486     
  487     When a client first calls ScreenSaverSetAttributes(), a struct
  488     ScreenSaverAttrRec is allocated and added to the client's
  489     resources.
  490     
  491     When the same client calls ScreenSaverSetAttributes() again, a new
  492     struct ScreenSaverAttrRec is allocated, replacing the old struct. The
  493     old struct was freed but not removed from the clients resources.
  494     
  495     Later, when the client is destroyed the resource system invokes
  496     ScreenSaverFreeAttr and attempts to clean up the already freed struct.
  497     
  498     Fix this by letting the resource system free the old attrs instead.
  499     
  500     CVE-2022-46343, ZDI-CAN 19404
  501     
  502     This vulnerability was discovered by:
  503     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  504     
  505     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  506     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
  507     (cherry picked from commit 842ca3ccef100ce010d1d8f5f6d6cc1915055900)
  508 
  509 commit 67927cc41f452228188bbe2aa34a9ee4a9ce0c6b
  510 Author: Peter Hutterer <peter.hutterer@who-t.net>
  511 Date:   Wed Nov 30 11:20:40 2022 +1000
  512 
  513     Xext: free the XvRTVideoNotify when turning off from the same client
  514     
  515     This fixes a use-after-free bug:
  516     
  517     When a client first calls XvdiSelectVideoNotify() on a drawable with a
  518     TRUE onoff argument, a struct XvVideoNotifyRec is allocated. This struct
  519     is added twice to the resources:
  520       - as the drawable's XvRTVideoNotifyList. This happens only once per
  521         drawable, subsequent calls append to this list.
  522       - as the client's XvRTVideoNotify. This happens for every client.
  523     
  524     The struct keeps the ClientPtr around once it has been added for a
  525     client. The idea, presumably, is that if the client disconnects we can remove
  526     all structs from the drawable's list that match the client (by resetting
  527     the ClientPtr to NULL), but if the drawable is destroyed we can remove
  528     and free the whole list.
  529     
  530     However, if the same client then calls XvdiSelectVideoNotify() on the
  531     same drawable with a FALSE onoff argument, only the ClientPtr on the
  532     existing struct was set to NULL. The struct itself remained in the
  533     client's resources.
  534     
  535     If the drawable is now destroyed, the resource system invokes
  536     XvdiDestroyVideoNotifyList which frees the whole list for this drawable
  537     - including our struct. This function however does not free the resource
  538     for the client since our ClientPtr is NULL.
  539     
  540     Later, when the client is destroyed and the resource system invokes
  541     XvdiDestroyVideoNotify, we unconditionally set the ClientPtr to NULL. On
  542     a struct that has been freed previously. This is generally frowned upon.
  543     
  544     Fix this by calling FreeResource() on the second call instead of merely
  545     setting the ClientPtr to NULL. This removes the struct from the client
  546     resources (but not from the list), ensuring that it won't be accessed
  547     again when the client quits.
  548     
  549     Note that the assignment tpn->client = NULL; is superfluous since the
  550     XvdiDestroyVideoNotify function will do this anyway. But it's left for
  551     clarity and to match a similar invocation in XvdiSelectPortNotify.
  552     
  553     CVE-2022-46342, ZDI-CAN 19400
  554     
  555     This vulnerability was discovered by:
  556     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  557     
  558     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  559     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
  560     (cherry picked from commit b79f32b57cc0c1186b2899bce7cf89f7b325161b)
  561 
  562 commit a6c0d7b142e762a6b9934a23e060ea91ff5afcea
  563 Author: Peter Hutterer <peter.hutterer@who-t.net>
  564 Date:   Tue Nov 29 13:55:32 2022 +1000
  565 
  566     Xi: disallow passive grabs with a detail > 255
  567     
  568     The XKB protocol effectively prevents us from ever using keycodes above
  569     255. For buttons it's theoretically possible but realistically too niche
  570     to worry about. For all other passive grabs, the detail must be zero
  571     anyway.
  572     
  573     This fixes an OOB write:
  574     
  575     ProcXIPassiveUngrabDevice() calls DeletePassiveGrabFromList with a
  576     temporary grab struct which contains tempGrab->detail.exact = stuff->detail.
  577     For matching existing grabs, DeleteDetailFromMask is called with the
  578     stuff->detail value. This function creates a new mask with the one bit
  579     representing stuff->detail cleared.
  580     
  581     However, the array size for the new mask is 8 * sizeof(CARD32) bits,
  582     thus any detail above 255 results in an OOB array write.
  583     
  584     CVE-2022-46341, ZDI-CAN 19381
  585     
  586     This vulnerability was discovered by:
  587     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  588     
  589     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  590     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
  591     (cherry picked from commit 51eb63b0ee1509c6c6b8922b0e4aa037faa6f78b)
  592 
  593 commit 936d34bdff4c479ccd0405fc221ff8e4c6c7014d
  594 Author: Peter Hutterer <peter.hutterer@who-t.net>
  595 Date:   Tue Nov 29 12:55:45 2022 +1000
  596 
  597     Xtest: disallow GenericEvents in XTestSwapFakeInput
  598     
  599     XTestSwapFakeInput assumes all events in this request are
  600     sizeof(xEvent) and iterates through these in 32-byte increments.
  601     However, a GenericEvent may be of arbitrary length longer than 32 bytes,
  602     so any GenericEvent in this list would result in subsequent events to be
  603     misparsed.
  604     
  605     Additional, the swapped event is written into a stack-allocated struct
  606     xEvent (size 32 bytes). For any GenericEvent longer than 32 bytes,
  607     swapping the event may thus smash the stack like an avocado on toast.
  608     
  609     Catch this case early and return BadValue for any GenericEvent.
  610     Which is what would happen in unswapped setups anyway since XTest
  611     doesn't support GenericEvent.
  612     
  613     CVE-2022-46340, ZDI-CAN 19265
  614     
  615     This vulnerability was discovered by:
  616     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  617     
  618     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  619     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
  620     (cherry picked from commit b320ca0ffe4c0c872eeb3a93d9bde21f765c7c63)
  621 
  622 commit 5f2d652377995c0c0c3cf07463b5018450661d13
  623 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  624 Date:   Sun Nov 27 15:04:13 2022 -0800
  625 
  626     meson: Don't build COMPOSITE for XQuartz
  627     
  628     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  629     (cherry picked from commit 9c0373366988cc0b909ba31e61c43cc46e054b40)
  630 
  631 commit 3dee0aac2c0ed4538880b65ee528e4633d103592
  632 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  633 Date:   Thu Nov 24 10:58:26 2022 -0800
  634 
  635     xquartz: Move default applications list outside of the main executable
  636     
  637     This will allow side-wide customization.
  638     
  639     Fixes: https://github.com/XQuartz/XQuartz/issues/274
  640     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  641     (cherry picked from commit e654de80ed560c480efc072d876808b1d78da052)
  642 
  643 commit 5d302c378d9d21b34db2434425b766ac4f05de89
  644 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  645 Date:   Thu Nov 24 11:04:08 2022 -0800
  646 
  647     xquartz: Remove unused macro (X11LIBDIR)
  648     
  649     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  650     (cherry picked from commit 3dbd809c0e2d8da4191dd4a3fd4abdd14be0d838)
  651 
  652 commit 6bf62381d0a1fb54226a10f9d0e6b03aff12f3aa
  653 Author: Povilas Kanapickas <povilas@radix.lt>
  654 Date:   Tue Jul 12 16:09:23 2022 +0300
  655 
  656     xserver 21.1.4
  657 
  658 commit 06b23cccb1166fcccc2f5fe7259b3ef9e1d0f32e
  659 Author: Peter Hutterer <peter.hutterer@who-t.net>
  660 Date:   Tue Jul 5 11:11:06 2022 +1000
  661 
  662     xkb: add request length validation for XkbSetGeometry
  663     
  664     No validation of the various fields on that report were done, so a
  665     malicious client could send a short request that claims it had N
  666     sections, or rows, or keys, and the server would process the request for
  667     N sections, running out of bounds of the actual request data.
  668     
  669     Fix this by adding size checks to ensure our data is valid.
  670     
  671     ZDI-CAN 16062, CVE-2022-2319.
  672     
  673     This vulnerability was discovered by:
  674     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  675     
  676     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  677     (cherry picked from commit 6907b6ea2b4ce949cb07271f5b678d5966d9df42)
  678 
  679 commit e3a530540f2f13739b0233ec51d7a3985a7ec4be
  680 Author: Peter Hutterer <peter.hutterer@who-t.net>
  681 Date:   Tue Jul 5 09:50:41 2022 +1000
  682 
  683     xkb: swap XkbSetDeviceInfo and XkbSetDeviceInfoCheck
  684     
  685     XKB often uses a FooCheck and Foo function pair, the former is supposed
  686     to check all values in the request and error out on BadLength,
  687     BadValue, etc. The latter is then called once we're confident the values
  688     are good (they may still fail on an individual device, but that's a
  689     different topic).
  690     
  691     In the case of XkbSetDeviceInfo, those functions were incorrectly
  692     named, with XkbSetDeviceInfo ending up as the checker function and
  693     XkbSetDeviceInfoCheck as the setter function. As a result, the setter
  694     function was called before the checker function, accessing request
  695     data and modifying device state before we ensured that the data is
  696     valid.
  697     
  698     In particular, the setter function relied on values being already
  699     byte-swapped. This in turn could lead to potential OOB memory access.
  700     
  701     Fix this by correctly naming the functions and moving the length checks
  702     over to the checker function. These were added in 87c64fc5b0 to the
  703     wrong function, probably due to the incorrect naming.
  704     
  705     Fixes ZDI-CAN 16070, CVE-2022-2320.
  706     
  707     This vulnerability was discovered by:
  708     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
  709     
  710     Introduced in c06e27b2f6fd9f7b9f827623a48876a225264132
  711     
  712     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  713     (cherry picked from commit dd8caf39e9e15d8f302e54045dd08d8ebf1025dc)
  714 
  715 commit e75840565775dc95b848b366aeed44066a9d8a28
  716 Author: Peter Hutterer <peter.hutterer@who-t.net>
  717 Date:   Tue Jul 5 12:40:47 2022 +1000
  718 
  719     xkb: switch to array index loops to moving pointers
  720     
  721     Most similar loops here use a pointer that advances with each loop
  722     iteration, let's do the same here for consistency.
  723     
  724     No functional changes.
  725     
  726     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  727     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
  728     (cherry picked from commit f1070c01d616c5f21f939d5ebc533738779451ac)
  729 
  730 commit f3d9c6ff12b5a8a1a9f316b096d5573060747ff9
  731 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  732 Date:   Mon Jul 4 14:16:43 2022 -0700
  733 
  734     xquartz: Add missing files to distribution tarball
  735     
  736     Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1346
  737     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  738 
  739 commit 147c17fc786c268ec51dc0f0655e69f6493f7ef2
  740 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  741 Date:   Sat Jul 2 14:15:50 2022 -0700
  742 
  743     XQuartz: Improve type safety for X11Controller's application menu editor
  744     
  745     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  746     (cherry picked from commit 4cfdc5af31ae8282903d0f65cff858330b9f9d1a)
  747 
  748 commit 9e2fc7e2484be7c577ee5baf3765734beef9adc2
  749 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  750 Date:   Sat Jul 2 14:17:18 2022 -0700
  751 
  752     xquartz: Fix a possible crash when editing the Application menu due to mutaing immutable arrays
  753     
  754     Crashing on exception: -[__NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object
  755     
  756     Application Specific Backtrace 0:
  757     0   CoreFoundation                      0x00007ff80d2c5e9b __exceptionPreprocess + 242
  758     1   libobjc.A.dylib                     0x00007ff80d027e48 objc_exception_throw + 48
  759     2   CoreFoundation                      0x00007ff80d38167b _CFThrowFormattedException + 194
  760     3   CoreFoundation                      0x00007ff80d382a25 -[__NSCFArray removeObjectAtIndex:].cold.1 + 0
  761     4   CoreFoundation                      0x00007ff80d2e6c0b -[__NSCFArray replaceObjectAtIndex:withObject:] + 119
  762     5   X11.bin                             0x00000001003180f9 -[X11Controller tableView:setObjectValue:forTableColumn:row:] + 169
  763     
  764     Fixes: https://github.com/XQuartz/XQuartz/issues/267
  765     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  766     (cherry picked from commit dfd057996b26420309c324ec844a5ba6dd07eda3)
  767 
  768 commit 86ace20398a6c559e89213622538134b72e448b1
  769 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  770 Date:   Fri Jul 1 14:26:06 2022 -0700
  771 
  772     xquartz: Use correct defines when building to support Sparkle updates
  773     
  774     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  775     (cherry picked from commit aa636b97c66343b25e508b9c73d8505e8c11b1d9)
  776 
  777 commit 855b96a85bc0711460a2542573a9a3959d1bfefa
  778 Author: Povilas Kanapickas <povilas@radix.lt>
  779 Date:   Sun Dec 19 16:51:39 2021 +0200
  780 
  781     xfree86: Fix event data alignment in inputtest driver
  782     
  783     This fixes address sanitizer errors when running unit tests. The
  784     additional copying may reduce performance by a small amount, but we
  785     don't care about that because this driver is used for testing only.
  786     
  787     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
  788     (cherry picked from commit 7d2014e7d523e10623203582b9f573303750f087)
  789 
  790 commit 9d05ee10c231edacc69b342677ae8c3cc32f97e5
  791 Author: Povilas Kanapickas <povilas@radix.lt>
  792 Date:   Sun Jan 16 10:42:15 2022 +0200
  793 
  794     dix: Don't send touch end to clients that do async grab without touches
  795     
  796     GTK3 menu widget creates a selection for touch and other events and
  797     after receiving touch events creates an async grab that excludes touch
  798     events. Unfortunately it relies on X server not sending the touch end
  799     event in order to function properly. Sending touch end event will cause
  800     it to think that the initiating touch ended and when it actually ends,
  801     the ButtonRelease event will make it think that the menu should be
  802     closed. As a result, the menu will be open only for the duration of the
  803     touch making it useless.
  804     
  805     This commit reverts f682e0563f736ed2c2c612ed575e05b6e3db945e.
  806     
  807     Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1255
  808     
  809     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
  810     (cherry picked from commit 43e934a19f644cddedae73602e86429c9dc5074a)
  811 
  812 commit b713e717c34d539486f661c03a0f1b35b3208d21
  813 Author: Povilas Kanapickas <povilas@radix.lt>
  814 Date:   Sun Jan 23 22:18:52 2022 +0200
  815 
  816     dix: Correctly save replayed event into GrabInfoRec
  817     
  818     When processing events we operate on InternalEvent pointers. They may
  819     actually refer to a an instance of DeviceEvent, GestureEvent or any
  820     other event that comprises the InternalEvent union. This works well in
  821     practice because we always look into event type before doing anything,
  822     except in the case of copying the event.
  823     
  824     *dst_event = *src_event would copy whole InternalEvent event and would
  825     cause out of bounds read in case the pointed to event was not
  826     InternalEvent but e.g. DeviceEvent.
  827     
  828     This regression has been introduced in
  829     23a8b62d34344575f9df9d057fb74bfefa94a77b.
  830     
  831     Fixes https://gitlab.freedesktop.org/xorg/xserver/-/issues/1261
  832     
  833     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
  834     (cherry picked from commit 6ef5c05728f8b18170fbc8415d7502495a08670b)
  835 
  836 commit cd3d21d8c44a35c22b7eca61a58bb5620b116102
  837 Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
  838 Date:   Wed Jan 26 00:05:55 2022 +0100
  839 
  840     xkb: fix XkbSetMap when changing a keysym without changing a keytype
  841     
  842     As the comment says:
  843     
  844     "symsPerKey/mapWidths must be filled regardless of client-side flags"
  845     
  846     so we always have to call CheckKeyTypes which will notably fill mapWidths
  847     and nTypes. That is needed for CheckKeySyms to work since it checks the
  848     width. Without it, any request with XkbKeySymsMask but not
  849     XkbKeyTypesMask will fail because of the missing width information, for
  850     instance this:
  851     
  852       XkbDescPtr xkb;
  853       if (!(xkb = XkbGetMap (dpy, XkbKeyTypesMask|XkbKeySymsMask, XkbUseCoreKbd))) {
  854         fprintf (stderr, "ERROR getting map\n");
  855         exit(1);
  856       }
  857       XFlush (dpy);
  858       XSync (dpy, False);
  859     
  860       XkbMapChangesRec changes = { .changed = 0 };
  861       int oneGroupType[XkbNumKbdGroups] = { XkbOneLevelIndex };
  862     
  863       if (XkbChangeTypesOfKey(xkb, keycode, 1, XkbGroup1Mask, oneGroupType, &changes)) {
  864         fprintf(stderr, "ERROR changing type of key\n");
  865         exit(1);
  866       }
  867       XkbKeySymEntry(xkb,keycode,0,0) = keysym;
  868     
  869       if (!XkbChangeMap(dpy,xkb,&changes)) {
  870         fprintf(stderr, "ERROR changing map\n");
  871         exit(1);
  872       }
  873     
  874       XkbFreeKeyboard (xkb, 0, TRUE);
  875       XFlush (dpy);
  876       XSync (dpy, False);
  877     
  878     This had being going under the radar since about ever until commit
  879     de940e06f8733d87bbb857aef85d830053442cfe ("xkb: fix key type index check
  880     in _XkbSetMapChecks") fixed checking the values of kt_index, which was
  881     previously erroneously ignoring errors and ignoring all other checks, just
  882     because nTypes was not set, precisely because CheckKeyTypes was not called.
  883     
  884     Note: yes, CheckKeyTypes is meant to be callable without XkbKeyTypesMask, it
  885     does properly check for that and just fills nTypes and mapWidths in that
  886     case.
  887     
  888     Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
  889     (cherry picked from commit 0217cc6e0cf5013366105a90f5f91ccc4bab5425)
  890 
  891 commit f575524314e9f20a1ff639f6bd65386cdbd083f4
  892 Author: Povilas Kanapickas <povilas@radix.lt>
  893 Date:   Thu Feb 3 20:04:52 2022 +0200
  894 
  895     Revert "os: Try to discover the current seat with the XDG_SEAT var first"
  896     
  897     This reverts commit b27eaa72837eebe80adfe6c257a71a6b9eaf66ee.
  898 
  899 commit 419fbf639d8f53d39449c157a9554bd5482ed64f
  900 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  901 Date:   Sun Jun 26 10:31:54 2022 -0700
  902 
  903     XQuartz: Add TCC reason keys to Info.plist
  904     
  905     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  906     (cherry picked from commit 9ce7264889e36fddbdf6bac332225ad6f628ad5d)
  907 
  908 commit 66ac50090dd191f1b16daf338ca3b46d9147fbbd
  909 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  910 Date:   Sun Jun 26 02:40:20 2022 -0700
  911 
  912     XQuartz: Build the bundle trampoline when using meson
  913     
  914     This brings the change for e1fdc856aedfcb4788011415930a0c6861df5123 into meson based builds
  915     
  916     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  917     (cherry picked from commit b00cf4aef881e00533f995c141c3586749cd7ca1)
  918 
  919 commit 033d93a021e86dd5ce9b2b3a1554a72c7031a7f2
  920 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  921 Date:   Mon Jun 20 17:08:53 2022 -0700
  922 
  923     meson: Support building Xnest and Xorg on darwin
  924     
  925     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  926     (cherry picked from commit ef8101560eefd6160df6d4b57ddb65ea2328c441)
  927 
  928 commit 433f53a1a08390a038176b7c1207512cf1dd3f44
  929 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  930 Date:   Mon Jun 20 20:19:06 2022 -0700
  931 
  932     tests: Fix build failure from missing micmap.c
  933     
  934     FAILED: test/tests
  935     clang  -o test/tests test/tests.p/.._mi_miinitext.c.o test/tests.p/fixes.c.o test/tests.p/input.c.o test/tests.p/list.c.o test/tests.p/misc.c.o test/tests.p/signal-logging.c.o test/tests.p/string.c.o test/tests.p/test_xkb.c.o test/tests.p/tests-common.c.o test/tests.p/tests.c.o test/tests.p/touch.c.o test/tests.p/xfree86.c.o test/tests.p/xtest.c.o test/tests.p/hashtabletest.c.o -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -fvisibility=hidden -O0 -g3 -gdwarf-2 -mmacosx-version-min=10.9 -Werror=unguarded-availability-new -Werror=format -Werror=objc-method-access -Werror=incompatible-pointer-types -F/Applications/Utilities/XQuartz.app/Contents/Frameworks -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk -arch x86_64 -O0 -g3 -gdwarf-2 -mmacosx-version-min=10.9 -Werror=unguarded-availability-new -Werror=format -Werror=objc-method-access -Werror=incompatible-pointer-types -F/Applications/Utilities/XQuartz.app/Contents/Frameworks -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.13.sdk -arch x86_64 -Wl,-rpath,/opt/X11/lib mi/liblibxserver_mi.a dix/liblibxserver_dix.a composite/liblibxserver_composite.a damageext/liblibxserver_damageext.a dbe/liblibxserver_dbe.a randr/liblibxserver_randr.a miext/damage/liblibxserver_miext_damage.a render/liblibxserver_render.a present/liblibxserver_present.a Xext/liblibxserver_xext.a miext/sync/liblibxserver_miext_sync.a xfixes/liblibxserver_xfixes.a Xi/liblibxserver_xi.a xkb/liblibxserver_xkb.a record/liblibxserver_record.a os/liblibxserver_os.a os/liblibxlibc.a glx/liblibglxvnd.a hw/xfree86/common/libxorg_common.a hw/xfree86/loader/libxorg_loader.a hw/xfree86/ddc/libxorg_ddc.a hw/xfree86/xkb/libxorg_xkb.a hw/xfree86/i2c/libxorg_i2c.a hw/xfree86/modes/libxorg_modes.a hw/xfree86/os-support/libxorg_os_support.a hw/xfree86/parser/libxorg_parser.a hw/xfree86/ramdac/libxorg_ramdac.a fb/liblibxserver_fb.a Xext/liblibxserver_xext_vidmode.a dix/liblibxserver_main.a config/liblibxserver_config.a /opt/X11/lib/libpixman-1.dylib /opt/X11/lib/libxcvt.dylib /opt/X11/lib/libxkbfile.dylib /opt/X11/lib/libXfont2.dylib /opt/X11/lib/libXdmcp.dylib -lm /opt/X11/lib/libxshmfence.dylib -ldl -lpthread /opt/X11/lib/libXau.dylib /opt/X11/lib/libGL.dylib
  936     Undefined symbols for architecture x86_64:
  937       "_micmapScrPrivateKeyRec", referenced from:
  938           _DGAInstallCmap in libxorg_common.a(xf86DGA.c.o)
  939           _xf86HandleColormaps in libxorg_common.a(xf86cmap.c.o)
  940           _CMapInstallColormap in libxorg_common.a(xf86cmap.c.o)
  941           _CMapEnterVT in libxorg_common.a(xf86cmap.c.o)
  942           _CMapSwitchMode in libxorg_common.a(xf86cmap.c.o)
  943           _CMapSetDGAMode in libxorg_common.a(xf86cmap.c.o)
  944           _CMapChangeGamma in libxorg_common.a(xf86cmap.c.o)
  945           ...
  946     ld: symbol(s) not found for architecture x86_64
  947     
  948     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  949     (cherry picked from commit 6645ff59069d603806d749e8af73893cf88d2c06)
  950 
  951 commit 3868f364728ae0cc35621bbfdd36bfa2e3f09fda
  952 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  953 Date:   Mon Jun 20 20:05:46 2022 -0700
  954 
  955     xf86-input-inputtest: Fix build on systems without SOCK_NONBLOCK
  956     
  957     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  958     (cherry picked from commit 707f23dab8787b4154011186206dc9964e2ebc11)
  959 
  960 commit afcaaac96767d773422512e755e5ad3691a0627c
  961 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  962 Date:   Mon Jun 20 19:51:39 2022 -0700
  963 
  964     print_edid: Fix a format string error
  965     
  966     ../hw/xfree86/ddc/print_edid.c:511:20: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat]
  967                        det_mon->type - DS_VENDOR);
  968                        ^~~~~~~~~~~~~~~~~~~~~~~~~
  969     
  970     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  971     (cherry picked from commit 199b8c0853c92ce19a589186f326621477401b74)
  972 
  973 commit 6bb98fc62ddf8b0dd90f7b0b45978a0d0425ed5a
  974 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  975 Date:   Tue Jun 21 11:46:14 2022 -0700
  976 
  977     xquartz: Update autotools-based builds of XQuartz to account for recent changes
  978     
  979     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  980 
  981 commit 4ea6f661edbbd84b3f2b308675bd2aa848b53746
  982 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  983 Date:   Mon Jun 20 20:32:26 2022 -0700
  984 
  985     Revert "meson: Bump requirement to meson-0.50.0"
  986     
  987     This bump is causing issues with our CI.  Sorry about that.
  988     
  989     This reverts commit a6a20a7c40f86b5586286aaa614e6b64a5987d82
  990     
  991     (cherry picked from commit 8cd0397e5b4c1f0e0add1fea67f82b811214bf3e)
  992 
  993 commit a6a20a7c40f86b5586286aaa614e6b64a5987d82
  994 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
  995 Date:   Sun Jun 19 23:06:40 2022 -0700
  996 
  997     meson: Provide options to set CFBundleVersion and CFBundleVersionString in XQuartz
  998     
  999     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1000     (cherry picked from commit 4f5999826aa478ba5f138e74cfccdf3b854c8e54)
 1001 
 1002 commit 37285e6252ce3afca5bc205121f83271548dfca9
 1003 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1004 Date:   Sun Jun 19 19:56:26 2022 -0700
 1005 
 1006     xquartz: Update copyright for 2022
 1007     
 1008     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1009     (cherry picked from commit b12f5dc62d964d0279e1fa9403259cfd8e491285)
 1010 
 1011 commit 96e7b55c5d6898a6715b62d5e01581617d218997
 1012 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1013 Date:   Sun Jun 19 19:55:44 2022 -0700
 1014 
 1015     xquartz: Update Sparkle configuration to use SUPublicEDKey
 1016     
 1017     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1018     (cherry picked from commit 1d90bef30c4dfe13dd5e70fea606a02380cbcee6)
 1019 
 1020 commit 6465263be8ae98283f8e99a3e95d04e786386040
 1021 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1022 Date:   Sun Jun 19 22:18:16 2022 -0700
 1023 
 1024     meson: Bump requirement to meson-0.50.0
 1025     
 1026     WARNING: Project specifies a minimum meson_version '>= 0.47.0' but uses features which were added in newer versions:
 1027      * 0.50.0: {'install arg in configure_file'}
 1028     
 1029     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1030     (cherry picked from commit 0a27f96d1d0e474b308be982fa7069d3ae0d9892)
 1031 
 1032 commit e48acd9c40c09b7c66a7bfc6650afc216ba78cca
 1033 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1034 Date:   Thu Jun 16 00:10:26 2022 -0700
 1035 
 1036     XQuartz: Ensure scroll events are delivered to a single window (not both X11 and AppKit)
 1037     
 1038     Fixes: https://github.com/XQuartz/XQuartz/issues/130
 1039     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1040     (cherry picked from commit 4532b696c644cb7f21e96cf76d3e6b21ccc0e309)
 1041 
 1042 commit 140d9a0f75194d4079d5cd1e4ad4683c6f47683e
 1043 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1044 Date:   Sat Feb 20 14:21:01 2021 -0800
 1045 
 1046     xquartz: Fold spaces related preferences into NSUserDefaults+XQuartzDefaults
 1047     
 1048     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1049     (cherry picked from commit f40610e0b4f2b4ae54ef6bbff756cb4a60e17e3b)
 1050 
 1051 commit 03ec5b132f0b3e07f9340faaacaa2455717fd8d1
 1052 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1053 Date:   Sat Feb 20 14:00:14 2021 -0800
 1054 
 1055     xquartz pbproxy: Adopt NSUserDefaults+XQuartzDefaults for preferences
 1056     
 1057     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1058     (cherry picked from commit 6134c73aebc3f928639e8f802be49ec8ecc17e66)
 1059 
 1060 commit 6df6178bb917f596ec2f61a3aabf99eea620b6ec
 1061 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1062 Date:   Fri Feb 19 22:49:11 2021 -0800
 1063 
 1064     xquartz: Create a separate category for organizing user preferences
 1065     
 1066     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1067     (cherry picked from commit 963ba6d9adf578ec8d7ed12ae22dece76b895172)
 1068 
 1069 commit c6c1cba397ffa203123a8a6690dee728089e7325
 1070 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1071 Date:   Sat Sep 10 22:32:56 2016 -0700
 1072 
 1073     os/connection: Improve abstraction for launchd secure sockets
 1074     
 1075     This changes away from hard-coding the /tmp/launch-* path to now
 1076     supporting a generic <absolute path to unix socket>[.<screen>]
 1077     format for $DISPLAY.
 1078     
 1079     cf-libxcb: d978a4f69b30b630f28d07f1003cf290284d24d8
 1080     
 1081     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1082     CC: Adam Jackson <ajax@kemper.freedesktop.org>
 1083     (cherry picked from commit 83d0d911069d502232d719882cd1c5cd090defa1)
 1084 
 1085 commit 663af2f17eec2cc064f3d1e25e00fb840c441964
 1086 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1087 Date:   Sun Jun 12 22:06:01 2022 -0700
 1088 
 1089     X11Application: Ensure TIS operations are done on the main thread
 1090     
 1091     Fixes: https://github.com/XQuartz/XQuartz/issues/205
 1092     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1093     (cherry picked from commit b1afcecc61d841f95e786e4f4f84184f91d149f1)
 1094 
 1095 commit bd3564cf377deace41b359740331d84e3086e916
 1096 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1097 Date:   Fri Apr 23 02:15:30 2021 -0700
 1098 
 1099     rootless: Dead code removal (ROOTLESS_REDISPLAY_DELAY is already defined)
 1100     
 1101     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 1102     (cherry picked from commit c11b55f3c0c64645bca964aece825de0bdd92b1f)
 1103 
 1104 commit 53173fdab492f0f638f6616fcf01af0b9ea6338d
 1105 Author: Olivier Fourdan <ofourdan@redhat.com>
 1106 Date:   Thu Jan 20 10:20:38 2022 +0100
 1107 
 1108     render: Fix build with gcc 12
 1109     
 1110     The xserver fails to compile with the latest gcc 12:
 1111     
 1112      render/picture.c: In function ‘CreateSolidPicture’:
 1113      render/picture.c:874:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[16]’ [-Werror=array-bounds]
 1114       874 |     pPicture->pSourcePict->type = SourcePictTypeSolidFill;
 1115           |                          ^~
 1116      render/picture.c:868:45: note: object of size 16 allocated by ‘malloc’
 1117       868 |     pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill));
 1118           |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1119      render/picture.c: In function ‘CreateLinearGradientPicture’:
 1120      render/picture.c:906:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds]
 1121       906 |     pPicture->pSourcePict->linear.type = SourcePictTypeLinear;
 1122           |                          ^~
 1123      render/picture.c:899:45: note: object of size 32 allocated by ‘malloc’
 1124       899 |     pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient));
 1125           |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126      render/picture.c: In function ‘CreateConicalGradientPicture’:
 1127      render/picture.c:989:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds]
 1128       989 |     pPicture->pSourcePict->conical.type = SourcePictTypeConical;
 1129           |                          ^~
 1130      render/picture.c:982:45: note: object of size 32 allocated by ‘malloc’
 1131       982 |     pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient));
 1132           |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1133      cc1: some warnings being treated as errors
 1134      ninja: build stopped: subcommand failed.
 1135     
 1136     This is because gcc 12 has become stricter and raises a warning now.
 1137     
 1138     Fix the warning/error by allocating enough memory to store the union
 1139     struct.
 1140     
 1141     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 1142     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
 1143     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1256
 1144     (cherry picked from commit c6b0dcb82d4db07a2f32c09a8c09c85a5f57248e)
 1145 
 1146 commit 69774044716039fa70655b3bc6dd6a4ff4535cfd
 1147 Author: Błażej Szczygieł <spaz16@wp.pl>
 1148 Date:   Thu Jan 13 00:47:27 2022 +0100
 1149 
 1150     present: Check for NULL to prevent crash
 1151     
 1152     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1275
 1153     Signed-off-by: Błażej Szczygieł <spaz16@wp.pl>
 1154     Tested-by: Aaron Plattner <aplattner@nvidia.com>
 1155     (cherry picked from commit 22d5818851967408bb7c903cb345b7ca8766094c)
 1156 
 1157 commit 85397cc2efe8fa73461cd21afe700829b2eca768
 1158 Author: Povilas Kanapickas <povilas@radix.lt>
 1159 Date:   Mon Jan 3 00:23:30 2022 +0200
 1160 
 1161     xserver 21.1.3
 1162     
 1163     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1164 
 1165 commit 001feb6692b77254db6a4906a82fa1bdadfd7b85
 1166 Author: Adam Jackson <ajax@redhat.com>
 1167 Date:   Tue Oct 26 11:46:37 2021 -0400
 1168 
 1169     glx/dri: Filter out fbconfigs that don't have a supported pixmap format
 1170     
 1171     For depth 30 in particular it's not uncommon for the DDX to not have
 1172     a configured pixmap format. Since the client expects to back both
 1173     GLXPixmaps and GLXPbuffers with X Pixmaps, trying to use an x2rgb10
 1174     fbconfig would fail along various paths to CreatePixmap. Filter these
 1175     fbconfigs out so the client can't ask for something that we know won't
 1176     work.
 1177     
 1178     (cherry picked from commit f6c070a1ac05801c52ae60efb7dc4b3142653b7d)
 1179 
 1180 commit 66890ca569291a53ea9cdc6ec19070173e522260
 1181 Author: Jocelyn Falempe <jfalempe@redhat.com>
 1182 Date:   Fri Dec 17 10:18:25 2021 +0100
 1183 
 1184     xf86/logind: fix missing call to vtenter if the platform device is not paused
 1185     
 1186     If there is one platform device, which is not paused nor resumed,
 1187     systemd_logind_vtenter() will never get called.
 1188     This break suspend/resume, and switching to VT on system with Nvidia
 1189     proprietary driver.
 1190     This is a regression introduced by f5bd039633fa83
 1191     
 1192     So now call systemd_logind_vtenter() if there are no paused
 1193     platform devices.
 1194     
 1195     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1271
 1196     Fixes: f5bd0396 - xf86/logind: fix call systemd_logind_vtenter after receiving drm device resume
 1197     
 1198     Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
 1199     Tested-by: Olivier Fourdan <ofourdan@redhat.com>
 1200     Reviewed-by: Hans de Goede <hdegoede@redhat.com>
 1201 
 1202 commit fec0e2501b424ec6cfbf4c7983727acfafea0ccb
 1203 Author: Jocelyn Falempe <jfalempe@redhat.com>
 1204 Date:   Thu Dec 16 15:46:43 2021 +0100
 1205 
 1206     xf86/logind: Fix compilation error when built without logind/platform bus
 1207     
 1208     This was introduced by commit 8eb1396d
 1209     
 1210     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1269
 1211     Fixes: da9d012a9 - xf86/logind: Fix drm_drop_master before vt_reldisp
 1212     
 1213     Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
 1214     Reviewed-by: Hans de Goede <hdegoede@redhat.com>
 1215 
 1216 commit 8223a9d6d9ed2b9a4c1e6373f6ab854fdbda9ead
 1217 Author: Matthieu Herrb <matthieu@herrb.eu>
 1218 Date:   Tue Nov 16 23:38:46 2021 +0100
 1219 
 1220     Convert more funcs to use InternalEvent.
 1221     
 1222     This fixes a crash when a DeviceEvent struct converted to
 1223     InteralEvent was beeing copied as InternalEvent (and thus
 1224     causing out of bounds reads) in ActivateGrabNoDelivery()
 1225     in events.c: 3876    *grabinfo->sync.event = *real_event;
 1226     
 1227     Possible fix for https://gitlab.freedesktop.org/xorg/xserver/-/issues/1253
 1228     
 1229     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 1230     (cherry picked from commit 5b8817a019845e1066c373022133985a0e2d718f)
 1231 
 1232 commit b27eaa72837eebe80adfe6c257a71a6b9eaf66ee
 1233 Author: nerdopolis <bluescreen_avenger@verizon.net>
 1234 Date:   Fri Oct 8 18:15:29 2021 -0400
 1235 
 1236     os: Try to discover the current seat with the XDG_SEAT var first
 1237     
 1238     (cherry picked from commit ca1dfdc9aa4b548de624d3a9af5147a998ba3d79)
 1239 
 1240 commit 9852b29380673484aea25771a3e812c8e8a40393
 1241 Author: Povilas Kanapickas <povilas@radix.lt>
 1242 Date:   Wed Dec 15 15:46:09 2021 +0200
 1243 
 1244     xserver 21.1.2
 1245     
 1246     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1247 
 1248 commit 9fe2991075aca3321d59d03f3e45faca6cb718b8
 1249 Author: Sam James <sam@gentoo.org>
 1250 Date:   Wed Dec 15 10:41:22 2021 +0200
 1251 
 1252     hw/xfree86: fix sbus build for SPARC
 1253     
 1254     Initially reported downstream in Gentoo. Manifests with errors like:
 1255     ```
 1256     gnu/bin/ld: hw/xfree86/common/libxorg_common.a(xf86fbBus.c.o): in function `xf86ClaimFbSlot':
 1257     xf86fbBus.c:(.text+0x20): undefined reference to `sbusSlotClaimed'
 1258     /usr/lib/gcc/sparc-unknown-linux-gnu/11.2.0/../../../../sparc-unknown-linux-gnu/bin/ld: xf86fbBus.c:(.text+0x2c): undefined reference to `sbusSlotClaimed'
 1259     ```
 1260     
 1261     While we use the headers in meson.build, we don't reference xf86sbusBus.c
 1262     which defines the missing symbols like sbusSlotClaimed.
 1263     
 1264     Bug: https://bugs.gentoo.org/828513
 1265     Signed-off-by: Sam James <sam@gentoo.org>
 1266     (cherry picked from commit 6c1a1fcc4bff90546ebc954f428c6df97005ea50)
 1267 
 1268 commit 0b67785cd13e65d37416f75ab938bdc49cf4732f
 1269 Author: Povilas Kanapickas <povilas@radix.lt>
 1270 Date:   Wed Dec 15 10:41:21 2021 +0200
 1271 
 1272     render: Fix out of bounds access in SProcRenderCompositeGlyphs()
 1273     
 1274     ZDI-CAN-14192, CVE-2021-4008
 1275     
 1276     This vulnerability was discovered and the fix was suggested by:
 1277     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 1278     
 1279     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1280     (cherry picked from commit ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60)
 1281 
 1282 commit 7209982d2a89f2e27d2f83f8952e9512be813aa4
 1283 Author: Povilas Kanapickas <povilas@radix.lt>
 1284 Date:   Wed Dec 15 10:41:20 2021 +0200
 1285 
 1286     Xext: Fix out of bounds access in SProcScreenSaverSuspend()
 1287     
 1288     ZDI-CAN-14951, CVE-2021-4010
 1289     
 1290     This vulnerability was discovered and the fix was suggested by:
 1291     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 1292     
 1293     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1294     (cherry picked from commit 6c4c53010772e3cb4cb8acd54950c8eec9c00d21)
 1295 
 1296 commit 6f09e7d3913a8188e32062f5e196bebb06bab140
 1297 Author: Povilas Kanapickas <povilas@radix.lt>
 1298 Date:   Wed Dec 15 10:41:19 2021 +0200
 1299 
 1300     xfixes: Fix out of bounds access in *ProcXFixesCreatePointerBarrier()
 1301     
 1302     ZDI-CAN-14950, CVE-2021-4009
 1303     
 1304     This vulnerability was discovered and the fix was suggested by:
 1305     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 1306     
 1307     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1308     (cherry picked from commit b5196750099ae6ae582e1f46bd0a6dad29550e02)
 1309 
 1310 commit a82d523edb30e5856adca9f258ac716108c71f19
 1311 Author: Povilas Kanapickas <povilas@radix.lt>
 1312 Date:   Wed Dec 15 10:41:18 2021 +0200
 1313 
 1314     record: Fix out of bounds access in SwapCreateRegister()
 1315     
 1316     ZDI-CAN-14952, CVE-2021-4011
 1317     
 1318     This vulnerability was discovered and the fix was suggested by:
 1319     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 1320     
 1321     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1322     (cherry picked from commit e56f61c79fc3cee26d83cda0f84ae56d5979f768)
 1323 
 1324 commit a39218d99c6961dda0142d9956eb7404a37d9bd2
 1325 Author: Matthieu Herrb <matthieu@herrb.eu>
 1326 Date:   Wed Dec 15 10:41:17 2021 +0200
 1327 
 1328     remove the PRE_RELEASE message.
 1329     
 1330     With the new numbering scheme, XORG_VERISON_SNAP doesn't mean
 1331     a pre-release version anymore.
 1332     
 1333     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 1334     (cherry picked from commit 4de9666b6d3c86660d728ddfc13d88700e5ff20d)
 1335 
 1336 commit fc2eb7e8cc19a41e034f2f4286af58f8b4825d65
 1337 Author: Matt Turner <mattst88@gmail.com>
 1338 Date:   Tue Dec 7 21:39:58 2021 -0800
 1339 
 1340     test: #undef NDEBUG so assert is not compiled away
 1341     
 1342     (cherry picked from commit d189102c783653a10931051175de24277a157331)
 1343 
 1344 commit 7caf29ca6607ddf4c19a81d19c0f4acc6deb8936
 1345 Author: Povilas Kanapickas <povilas@radix.lt>
 1346 Date:   Sat Nov 13 16:42:36 2021 +0200
 1347 
 1348     meson: Correctly set DDXOSVERRORF and DDXBEFORERESET on xwin
 1349     
 1350     This worked with autotools, but not meson build system.
 1351     
 1352     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1353     (cherry picked from commit 04c93b98e9e4593aa2e6701bb08f5e27c3544d8a)
 1354 
 1355 commit 101791f80fdefea738421a414177899db7c76e83
 1356 Author: Jonathan Gray <jsg@jsg.id.au>
 1357 Date:   Fri Dec 3 19:17:18 2021 +1100
 1358 
 1359     glamor: fix free of uninitialised pointers
 1360     
 1361     Attempting to run fvwm on a x61/965gm with xserver 1.21.1 with the
 1362     modesetting driver on OpenBSD/amd64 would cause the xserver to
 1363     reliably crash.
 1364     
 1365     I tracked this down to the free() calls introduced in
 1366     2906ee5e4a722138cccb3265a615da7705a52589
 1367     (d1ca47e1242b51c79cec7287f52c36c8e494706b in branch).
 1368     
 1369     clang also warns about this:
 1370     glamor_program.c:296:13: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
 1371     glamor_program.c:290:9: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
 1372     glamor_program.c:288:9: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
 1373     glamor_program.c:277:13: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
 1374     glamor_program.c:296:13: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
 1375     glamor_program.c:290:9: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
 1376     glamor_program.c:288:9: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
 1377     glamor_program.c:277:13: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
 1378     
 1379     Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
 1380     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 1381     Fixes: 2906ee5e4 ("glamor: Fix leak in glamor_build_program()")
 1382     (cherry picked from commit 5ac6319776b13f96a2b336da4b35237618a5b001)
 1383 
 1384 commit 2c6989f81e62bac05a583c39fa09a06172d1ece5
 1385 Author: Peter Hutterer <peter.hutterer@who-t.net>
 1386 Date:   Thu Dec 2 10:41:03 2021 +1000
 1387 
 1388     xkb: fix XkbSetMap check for the keytypes count
 1389     
 1390     The previous if/else condition resulted in us always setting the key
 1391     type count to the current number of key types. Split this up correctly.
 1392     
 1393     Regression introduced in de940e06f8733d87bbb857aef85d830053442cfe
 1394     
 1395     Fixes #1249
 1396     
 1397     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
 1398     (cherry picked from commit be16bd8543f80ad2933ec9c37f082617c7084165)
 1399 
 1400 commit 49444ce9f7ad34fff6ff94a9db95337f4bfd7b03
 1401 Author: Povilas Kanapickas <povilas@radix.lt>
 1402 Date:   Sat Nov 13 17:23:54 2021 +0200
 1403 
 1404     Revert "hw/xfree86: Propagate physical dimensions from DRM connector"
 1405     
 1406     Quite a lot of applications currently expect the screen DPI exposed by
 1407     the X server to be 96 even when the real display DPI is different.
 1408     Additionally, currently Xwayland completely ignores any hardware
 1409     information and sets the DPI to 96. Accordingly the new behavior, even
 1410     if it fixes a bug, should not be enabled automatically to all users.
 1411     
 1412     A better solution would be to make the default DPI stay as is and enable
 1413     the correct behavior with a command line option (maybe -dpi auto, or
 1414     similar). For now let's just revert the bug fix.
 1415     
 1416     This reverts commit 05b3c681ea2f478c0cb941c2f8279919cf78de6d.
 1417     
 1418     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1419     (cherry picked from commit 35af1299e73483eaf93d913a960e1d1738bc7de6)
 1420 
 1421 commit 6f11b3c803898e0effe6ade2ae951f5758936152
 1422 Author: Dave Airlie <airlied@redhat.com>
 1423 Date:   Thu Nov 11 06:35:19 2021 +1000
 1424 
 1425     dri2: add crocus to the list of va_gl users
 1426     
 1427     (cherry picked from commit a7b0a7fabd137183cc42a5edb15697e354c4450c)
 1428 
 1429 commit 8eb1396d3ecfd2bf968105a99759ae9445bdf768
 1430 Author: Jocelyn Falempe <jfalempe@redhat.com>
 1431 Date:   Thu Nov 18 14:51:21 2021 +0100
 1432 
 1433     xf86/logind: Fix drm_drop_master before vt_reldisp
 1434     
 1435     When switching to VT, the ioctl DRM_DROP_MASTER must be done before
 1436     the ioctl VT_RELDISP. Otherwise the kernel can't change the modesetting
 1437     reliably, and this leads to the console not showing up in some cases, like
 1438     after unplugging a docking station with a DP or HDMI monitor.
 1439     
 1440     Before doing the VT_RELDISP, send a dbus message to logind, to
 1441     pause the drm device, so logind will do the ioctl DRM_DROP_MASTER.
 1442     
 1443     With this patch, it changes the order logind will send the resume
 1444     event, and drm will be sent last instead of first.
 1445     so there is a also fix to call systemd_logind_vtenter() at the right time.
 1446     
 1447     Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
 1448     Reviewed-by: Hans de Goede <hdegoede@redhat.com>
 1449     (cherry picked from commit da9d012a9c760896941769d4127e3cfb1a7a9f03)
 1450 
 1451 commit 6834f977a5eadbc3289f27b2bb83997132a39fdd
 1452 Author: Jocelyn Falempe <jfalempe@redhat.com>
 1453 Date:   Thu Nov 18 14:45:42 2021 +0100
 1454 
 1455     xf86/logind: fix call systemd_logind_vtenter after receiving drm device resume
 1456     
 1457     logind send the resume event for input devices and drm device,
 1458     in any order. if we call vt_enter before logind resume the drm device,
 1459     it leads to a driver error, because logind has not done the
 1460     DRM_IOCTL_SET_MASTER on it.
 1461     
 1462     Keep the old workaround to make sure we call systemd_logind_vtenter at
 1463     least once if there are no platform device
 1464     
 1465     Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
 1466     Reviewed-by: Hans de Goede <hdegoede@redhat.com>
 1467     (cherry picked from commit f5bd039633fa8360a10bd2aabb0111571f6275b0)
 1468 
 1469 commit 0ed7b1224ef17ff3d27e791e03e0d98dd6373c8a
 1470 Author: nerdopolis <bluescreen_avenger@verizon.net>
 1471 Date:   Fri Oct 8 21:51:43 2021 -0400
 1472 
 1473     xfree86: On Linux, while only seat0 can have TTYs, don't assmume all seat0s have TTYs
 1474     
 1475     (cherry picked from commit b8c12aac651d626c5120e6e8e18b42e7528caf43)
 1476 
 1477 commit 6b997fb74e5c9473ee3989fca8d592a3a0d16067
 1478 Author: Povilas Kanapickas <povilas@radix.lt>
 1479 Date:   Sun Nov 7 01:33:56 2021 +0200
 1480 
 1481     xserver 21.1.1
 1482     
 1483     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1484 
 1485 commit 70a0c48ff3bb7e3392035ef333cc5c8453508f33
 1486 Author: Povilas Kanapickas <povilas@radix.lt>
 1487 Date:   Sat Nov 6 20:09:48 2021 +0200
 1488 
 1489     Makefile.am: Add missing meson build files to release tarball
 1490 
 1491 commit db0da823f55734baf4c1e4de680e7091f33aac17
 1492 Author: Matthieu Herrb <matthieu.herrb@laas.fr>
 1493 Date:   Sun Oct 31 11:28:28 2021 +0100
 1494 
 1495     Make xf86CompatOutput() return NULL when there are no privates
 1496     
 1497     Some drivers (mach64 w/o DRI for instance) don't initialize privates.
 1498     
 1499     Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
 1500     (cherry picked from commit 80eeff3ebac772e25c9107199989e677457dbe06)
 1501 
 1502 commit fdb266ff814f6abb6ce006ecbac5ba78a92cdbca
 1503 Author: Jon Turney <jon.turney@dronecode.org.uk>
 1504 Date:   Tue Nov 2 14:04:08 2021 +0000
 1505 
 1506     s/__/@/ in inputtestdrv manpage
 1507     
 1508     Update manpage subsitution style for 2e497bf8
 1509     
 1510     (cherry picked from commit 0099412ea4347b02e61ea21946f309f2535cc07b)
 1511 
 1512 commit 27a0ee32ccef8d621aaa758c804fc9a5ceeb5a56
 1513 Author: Povilas Kanapickas <povilas@radix.lt>
 1514 Date:   Wed Oct 27 13:36:45 2021 +0300
 1515 
 1516     xserver 21.1
 1517     
 1518     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1519 
 1520 commit d4944ceda1727180bbee1c582b4ac0796c2748cc
 1521 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 1522 Date:   Mon Oct 18 08:14:04 2021 +0200
 1523 
 1524     Fix RandR leasing for more than 1 simultaneously active lease.
 1525     
 1526     Due to a switched order of parameters in the xorg_list_add()
 1527     call inside ProcRRCreateLease(), adding a new lease for RandR
 1528     output leasing does not actually add the new RRLeasePtr lease
 1529     record to the list of existing leases for a X-Screen, but instead
 1530     replaces the existing list with a new list that has the new lease
 1531     as the only element, and probably leaks a bit of memory.
 1532     
 1533     Therefore the server "forgets" all active leases for a screen,
 1534     except for the last added lease. If multiple leases are created
 1535     in a session, then destruction of all leases but the last one
 1536     will fail in many cases, e.g., during server shutdown in
 1537     RRCloseScreen(), or resource destruction, e.g., in
 1538     RRCrtcDestroyResource().
 1539     
 1540     Most importantly, it fails if a client simply close(fd)'es the
 1541     DRM master descriptor to release a lease, quits, gets killed or
 1542     crashes. In this case the kernel will destroy the lease and shut
 1543     down the display output, then send a lease event via udev to the
 1544     ddx, which e.g., in the modesetting-ddx will trigger a call to
 1545     drmmode_validate_leases().
 1546     
 1547     That function is supposed to detect the released lease and tell
 1548     the server to terminate the lease on the server side as well,
 1549     via xf86CrtcLeaseTerminated(), but this doesn't happen for all
 1550     the leases the server has forgotten. The end result is a dead
 1551     video output, as the server won't reinitialize the crtc's
 1552     corresponding to the terminated but forgotten lease.
 1553     
 1554     This bug was observed when using the amdvlk AMD OSS Vulkan
 1555     driver and trying to lease multiple VKDisplay's, and also
 1556     under Mesa radv, as both Mesa Vulkan/WSI/Display and amdvlk
 1557     terminate leases by simply close()ing the lease fd, not by
 1558     sending explicit RandR protocol requests to free leases.
 1559     
 1560     Leasing worked, but ending a session with multiple active
 1561     leases ended in a lot of unpleasant darkness.
 1562     
 1563     Fixing the wrong argument order to xorg_list_add() fixes the
 1564     problem. Tested on single-X-Screen and dual-X-Screen setups,
 1565     with one, two or three active leases.
 1566     
 1567     Please merge this for the upcoming server 21.1 branch.
 1568     Merging into server 1.20 would also make a lot of sense.
 1569     
 1570     Fixes: e4e3447603b5fd3a38a92c3f972396d1f81168ad
 1571     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 1572     Cc: Keith Packard <keithp@keithp.com>
 1573     (cherry picked from commit f467f85ca1f780d5c7cf3c20888e399708d761ac)
 1574 
 1575 commit e59faa4b8cc5aaa19474a5e7ca3a99d08006f8c5
 1576 Author: Povilas Kanapickas <povilas@radix.lt>
 1577 Date:   Thu Oct 14 17:33:40 2021 +0300
 1578 
 1579     xserver 21.1 RC 2
 1580 
 1581 commit 3fb94f3c5ca73f15a78dbc6904380b9b9e402bf4
 1582 Author: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
 1583 Date:   Fri Jul 23 09:23:45 2021 +0100
 1584 
 1585     dix/privates.c: Avoid undefined behaviour after realloc()
 1586     
 1587     Adding the offset between the realloc result and the old allocation to
 1588     update pointers into the new allocation is undefined behaviour: the
 1589     old pointers are no longer valid after realloc() according to the C
 1590     standard. While this works on almost all architectures and compilers,
 1591     it causes  problems on architectures that track pointer bounds (e.g.
 1592     CHERI or Arm's Morello): the DevPrivateKey pointers will still have the
 1593     bounds of the previous allocation and therefore any dereference will
 1594     result in a run-time trap.
 1595     
 1596     I found this due to a crash (dereferencing an invalid capability) while
 1597     trying to run `XVnc` on a CHERI-RISC-V system. With this commit I can
 1598     successfully connect to the XVnc instance running inside a QEMU with a
 1599     VNC viewer on my host.
 1600     
 1601     This also changes the check whether the allocation was moved to use
 1602     uintptr_t instead of a pointer since according to the C standard:
 1603     "The value of a pointer becomes indeterminate when the object it
 1604     points to (or just past) reaches the end of its lifetime." Casting to an
 1605     integer type avoids this undefined behaviour.
 1606     
 1607     Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
 1608     (cherry picked from commit f9f705bf3cf0d169d54a70f235cc99e106dbda43)
 1609 
 1610 commit b89fdd523e2c9e9b0cdf37b263833c4b0a8868b8
 1611 Author: nerdopolis <rbos@rbos>
 1612 Date:   Thu Sep 30 08:51:18 2021 -0400
 1613 
 1614     xf86: Accept devices with the 'simpledrm' driver.
 1615     
 1616     SimpleDRM 'devices' are a fallback device, and do not have a busid
 1617     so they are getting skipped. This will allow simpledrm to work
 1618     with the modesetting driver
 1619     
 1620     (cherry picked from commit b9218fadf3c09d83566549279d68886d8258f79c)
 1621 
 1622 commit fbc690ccaf12d6536951d0ba403dfbb92c7c4115
 1623 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 1624 Date:   Fri Oct 1 09:47:41 2021 +0200
 1625 
 1626     modesetting: Consider RandR primary output for selectioh of sync crtc.
 1627     
 1628     The "sync crtc" is the crtc used to drive the display timing of a
 1629     drawable under DRI2 and DRI3/Present. If a drawable intersects
 1630     multiple video outputs, then normally the crtc is chosen which has
 1631     the largest intersection area with the drawable.
 1632     
 1633     If multiple outputs / crtc's have exacty the same intersection
 1634     area then the crtc chosen was simply the first one with maximum
 1635     intersection. Iow. the choice was random, depending on plugging
 1636     order of displays.
 1637     
 1638     This adds the ability to choose a preferred output in such a tie
 1639     situation. The RandR output marked as "primary output" is chosen
 1640     on such a tie.
 1641     
 1642     This new behaviour and its implementation is consistent with other
 1643     video ddx drivers. See amdgpu-ddx, ati-ddx and nouveau-ddx for
 1644     reference. This commit is a straightforward port from amdgpu-ddx.
 1645     
 1646     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 1647     (cherry picked from commit 4b75e65766a9ef3a26d4c1c9d7af9fc6d1d7be5b)
 1648 
 1649 commit 22f4ff1026eeffc566f87453d7f1f70dc23ad4e0
 1650 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 1651 Date:   Fri Oct 1 08:49:10 2021 +0200
 1652 
 1653     modesetting: Handle mixed VRR and non-VRR display setups better.
 1654     
 1655     In a setup with both VRR capable and non-VRR capable displays,
 1656     it was so far inconsistent if the driver would allow use of
 1657     VRR support or not, as "is_connector_vrr_capable" was set to
 1658     whatever the capabilities of the last added drm output were.
 1659     Iow. the plugging order of monitors determined the outcome.
 1660     
 1661     Fix this: Now if at least one display is VRR capable, the driver
 1662     will treat an X-Screen as capable for VRR, plugging order no
 1663     longer matters.
 1664     
 1665     Tested with a dual-display setup with one VRR monitor and one
 1666     non-VRR monitor. This is also beneficial with the new Option
 1667     "AsyncFlipSecondaries".
 1668     
 1669     When we are at it, also add some so far missing description of
 1670     the "VariableRefresh" driver option, copied from amdgpu-ddx.
 1671     
 1672     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 1673     (cherry picked from commit 017ce263376aa64a495c4d71a140a24b1dff7054)
 1674 
 1675 commit 0d0986bf3b924ccb26e4bc6a8c06aed41f238683
 1676 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 1677 Date:   Fri Oct 1 07:42:01 2021 +0200
 1678 
 1679     modesetting: Enable GAMMA_LUT for lut's with up to 4096 slots.
 1680     
 1681     A lut size of 4096 slots has been verified to work correctly,
 1682     as tested with amdgpu-kms. Intel Tigerlake Gen12 hw has a very
 1683     large GAMMA_LUT size of 262145 slots, but also issues with its
 1684     current GAMMA_LUT implementation, as of Linux 5.14.
 1685     
 1686     Therefore we keep GAMMA_LUT off for large lut's. This currently
 1687     excludes Intel Icelake, Tigerlake and later.
 1688     
 1689     This can be overriden via the "UseGammaLUT" boolean xorg.conf option
 1690     to force use of GAMMA_LUT on or off.
 1691     
 1692     See following link for the Tigerlake situation:
 1693     https://gitlab.freedesktop.org/drm/intel/-/issues/3916#note_1085315
 1694     
 1695     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 1696     (cherry picked from commit 66e5a5bb12c58413a4d71781c5a7f63f675bfe55)
 1697 
 1698 commit bc1327e6de82da560c97f66c9c196d9bbd2d24be
 1699 Author: Ray Strode <rstrode@redhat.com>
 1700 Date:   Mon Oct 4 14:27:54 2021 -0400
 1701 
 1702     xkb: Drop check for XkbSetMapResizeTypes
 1703     
 1704     Commit 446ff2d3177087b8173fa779fa5b77a2a128988b added checks to
 1705     prevalidate the size of incoming SetMap requests.
 1706     
 1707     That commit checks for the XkbSetMapResizeTypes flag to be set before
 1708     allowing key types data to be processed.
 1709     
 1710     key types data can be changed or even just sent wholesale unchanged
 1711     without the number of key types changing, however. The check for
 1712     XkbSetMapResizeTypes rejects those legitimate requests. In particular,
 1713     XkbChangeMap never sets XkbSetMapResizeTypes and so always fails now
 1714     any time XkbKeyTypesMask is in the changed mask.
 1715     
 1716     This commit drops the check for XkbSetMapResizeTypes in flags when
 1717     prevalidating the request length.
 1718     
 1719     (cherry picked from commit 8b7f4d3259e8b7d1eb3d8a83e8852989e869596a)
 1720 
 1721 commit b87536682c185b6a825525d01e95e264018c0997
 1722 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 1723 Date:   Tue Sep 14 07:52:33 2021 +0200
 1724 
 1725     Revert "modesetting: Only use GAMMA_LUT if its size is 1024"
 1726     
 1727     This reverts commit 617f591fc44e24413e1f91017d16734999bbbac1.
 1728     
 1729     The problem described in that commit exists, but the two
 1730     preceeding commits with improvements to the servers RandR
 1731     code should avoid the mentioned problems while allowing the
 1732     use of GAMMA_LUT's instead of legacy gamma lut.
 1733     
 1734     Use of legacy gamma lut's is not a good fix, because it will reduce
 1735     color output precision of gpu's with more than 1024 GAMMA_LUT
 1736     slots, e.g., AMD, ARM MALI and KOMEDA with 4096 slot luts,
 1737     and some Mediathek parts with 512 slot luts. On KOMEDA, legacy
 1738     lut's are completely unsupported by the kms driver, so gamma
 1739     correction gets disabled.
 1740     
 1741     The situation is especially bad on Intel Icelake and later:
 1742     Use of legacy gamma tables will cause the kms driver to switch
 1743     to hardware legacy lut's with 256 slots, 8 bit wide, without
 1744     interpolation. This way color output precision is restricted to
 1745     8 bpc and any deep color / HDR output (10 bpc, fp16, fixed point 16)
 1746     becomes impossible. The latest Intel gen gpu's would have worse
 1747     color precision than parts which are more than 10 years old.
 1748     
 1749     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 1750     (cherry picked from commit 545fa90cbf37a4c18f013dabc9f3bfb8310a5a98)
 1751 
 1752 commit 473a48660fc8a326312df2d5925017ce8152c7db
 1753 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 1754 Date:   Tue Sep 14 07:51:46 2021 +0200
 1755 
 1756     xfree86: Let xf86RandR12CrtcComputeGamma() deal with non-power-of-2 sizes.
 1757     
 1758     The assumption in the upsampling code was that the crtc->gamma_size
 1759     size of the crtc's gamma table is a power of two. This is true for
 1760     almost all current driver + gpu combos at least on Linux, with typical
 1761     sizes of 256, 512, 1024 or 4096 slots.
 1762     
 1763     However, Intel Gen-11 Icelake and later are outliers, as their gamma
 1764     table has 2^18 + 1 slots, very big and not a power of two!
 1765     
 1766     Try to make upsampling behave at least reasonable: Replicate the
 1767     last gamma value to fill up remaining crtc->gamma_red/green/blue
 1768     slots, which would normally stay uninitialized. This is important,
 1769     because while the intel display driver does not actually use all
 1770     2^18+1 values passed as part of a GAMMA_LUT, it does need the
 1771     very last slot, which would not get initialized by the old code.
 1772     
 1773     This should hopefully create reasonable behaviour with Icelake+
 1774     but is untested on the actual Intel hw due to lack of suitable
 1775     hw.
 1776     
 1777     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 1778     (cherry picked from commit 7326e131df3d1373dd796d9e2d931e81a3536bad)
 1779 
 1780 commit b33f487a7ca276e11214eb45b87aab970ca43d79
 1781 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 1782 Date:   Tue Sep 14 07:40:49 2021 +0200
 1783 
 1784     xfree86: Avoid crash in xf86RandR12CrtcSetGamma() memcpy path.
 1785     
 1786     If randrp->palette_size is zero, the memcpy() path can read past the
 1787     end of the randr_crtc's gammaRed/Green/Blue tables if the hw crtc's
 1788     gamma_size is greater than the randr_crtc's gammaSize.
 1789     
 1790     Avoid this by clamping the to-be-copied size to the smaller of both
 1791     sizes.
 1792     
 1793     Note that during regular server startup, the memcpy() path is only
 1794     taken initially twice, but then a suitable palette is created for
 1795     use during a session. Therefore during an actual running X-Session,
 1796     the xf86RandR12CrtcComputeGamma() will be used, which makes sure that
 1797     data is properly up- or down-sampled for mismatching source and
 1798     target crtc gamma sizes.
 1799     
 1800     This should avoid reading past randr_crtc gamma memory for gpu's
 1801     with big crtc->gamma_size, e.g., AMD/MALI/KOMEDA 4096 slots, or
 1802     Intel Icelake and later with 262145 slots.
 1803     
 1804     Tested against modesetting-ddx and amdgpu-ddx under screen color
 1805     depth 24 (8 bpc) and 30 (10 bpc) to make sure that clamping happens
 1806     properly.
 1807     
 1808     This is an alternative fix for the one attempted in commit
 1809     617f591fc44e24413e1f91017d16734999bbbac1.
 1810     
 1811     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 1812     (cherry picked from commit 966f567432e91762382db09129f8fb4e2e434437)
 1813 
 1814 commit d1ca47e1242b51c79cec7287f52c36c8e494706b
 1815 Author: Olivier Fourdan <ofourdan@redhat.com>
 1816 Date:   Tue Sep 14 16:32:45 2021 +0200
 1817 
 1818     glamor: Fix leak in glamor_build_program()
 1819     
 1820     Fix the possible leak of `vs_prog_string` and `fs_prog_string` in case
 1821     of failure, as reported by covscan.
 1822     
 1823     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 1824     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 1825     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 1826     (cherry picked from commit 2906ee5e4a722138cccb3265a615da7705a52589)
 1827 
 1828 commit d00e7dfc9da165810a578fa0910475686e1fa51c
 1829 Author: Povilas Kanapickas <povilas@radix.lt>
 1830 Date:   Tue Sep 21 23:35:42 2021 +0300
 1831 
 1832     xserver 21.1 RC 1
 1833     
 1834     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1835 
 1836 commit 4ee66f574a70948ca90a5db94dd666a389a5ff3e
 1837 Author: Povilas Kanapickas <povilas@radix.lt>
 1838 Date:   Wed Sep 15 21:49:17 2021 +0300
 1839 
 1840     Drop XWayland DDX
 1841 
 1842 commit 72c5d153c920d769802ed73a1b9bfd0d32e7c178
 1843 Author: Aaron Plattner <aplattner@nvidia.com>
 1844 Date:   Fri Sep 10 11:02:00 2021 -0700
 1845 
 1846     xfree86: NUL-terminate strings in hwEnableIO
 1847     
 1848     The Linux version of xf86EnableIO calls a helper function called hwEnableIO().
 1849     Except on Alpha, this function reads /proc/ioports looking for the 'keyboard'
 1850     and 'timer' ports, extracts the port ranges, and enables access to them. It does
 1851     this by reading 4 bytes from the string for the start port number and 4 bytes
 1852     for the last port number, passing those to atoi(). However, it doesn't add a
 1853     fifth byte for a NUL terminator, so some implementations of atoi() read past the
 1854     end of this string, triggering an AddressSanitizer error:
 1855     
 1856       ==1383==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff71fd5b74 at pc 0x7fe1be0de3e0 bp 0x7fff71fd5ae0 sp 0x7fff71fd5288
 1857       READ of size 5 at 0x7fff71fd5b74 thread T0
 1858           #0 0x7fe1be0de3df in __interceptor_atoi /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cpp:520
 1859           #1 0x564971adcc45 in hwEnableIO ../hw/xfree86/os-support/linux/lnx_video.c:138
 1860           #2 0x564971adce87 in xf86EnableIO ../hw/xfree86/os-support/linux/lnx_video.c:174
 1861           #3 0x5649719f6a30 in InitOutput ../hw/xfree86/common/xf86Init.c:439
 1862           #4 0x564971585924 in dix_main ../dix/main.c:190
 1863           #5 0x564971b6246e in main ../dix/stubmain.c:34
 1864           #6 0x7fe1bdab6b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
 1865           #7 0x564971490e9d in _start (/home/aaron/git/x/xserver/build.asan/hw/xfree86/Xorg+0xb2e9d)
 1866     
 1867       Address 0x7fff71fd5b74 is located in stack of thread T0 at offset 100 in frame
 1868           #0 0x564971adc96a in hwEnableIO ../hw/xfree86/os-support/linux/lnx_video.c:118
 1869     
 1870         This frame has 3 object(s):
 1871           [32, 40) 'n' (line 120)
 1872           [64, 72) 'buf' (line 122)
 1873           [96, 100) 'target' (line 122) <== Memory access at offset 100 overflows this variable
 1874       HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
 1875             (longjmp and C++ exceptions *are* supported)
 1876       SUMMARY: AddressSanitizer: stack-buffer-overflow /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cpp:520 in __interceptor_atoi
 1877       Shadow bytes around the buggy address:
 1878         0x10006e3f2b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 1879         0x10006e3f2b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 1880         0x10006e3f2b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 1881         0x10006e3f2b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 1882         0x10006e3f2b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 1883       =>0x10006e3f2b60: 00 00 f1 f1 f1 f1 00 f2 f2 f2 00 f2 f2 f2[04]f3
 1884         0x10006e3f2b70: f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 1885         0x10006e3f2b80: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
 1886         0x10006e3f2b90: f1 f1 f8 f2 00 f2 f2 f2 f8 f3 f3 f3 00 00 00 00
 1887         0x10006e3f2ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
 1888         0x10006e3f2bb0: f1 f1 00 f3 f3 f3 00 00 00 00 00 00 00 00 00 00
 1889       Shadow byte legend (one shadow byte represents 8 application bytes):
 1890         Addressable:           00
 1891         Partially addressable: 01 02 03 04 05 06 07
 1892         Heap left redzone:       fa
 1893         Freed heap region:       fd
 1894         Stack left redzone:      f1
 1895         Stack mid redzone:       f2
 1896         Stack right redzone:     f3
 1897         Stack after return:      f5
 1898         Stack use after scope:   f8
 1899         Global redzone:          f9
 1900         Global init order:       f6
 1901         Poisoned by user:        f7
 1902         Container overflow:      fc
 1903         Array cookie:            ac
 1904         Intra object redzone:    bb
 1905         ASan internal:           fe
 1906         Left alloca redzone:     ca
 1907         Right alloca redzone:    cb
 1908         Shadow gap:              cc
 1909       ==1383==ABORTING
 1910     
 1911     Fix this by NUL-terminating the string.
 1912     
 1913     Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1193#note_1053306
 1914     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 1915 
 1916 commit 617f591fc44e24413e1f91017d16734999bbbac1
 1917 Author: Aaron Plattner <aplattner@nvidia.com>
 1918 Date:   Thu Sep 9 15:29:50 2021 -0700
 1919 
 1920     modesetting: Only use GAMMA_LUT if its size is 1024
 1921     
 1922     GAMMA_LUT sizes other than 1024 cause a crash during startup if the memcpy()
 1923     calls in xf86RandR12CrtcSetGamma() read past the end of the legacy X11 /
 1924     XVidMode gamma ramp.
 1925     
 1926     This is a problem on Intel ICL / GEN11 platforms because they report a GAMMA_LUT
 1927     size of 262145. Since it's not clear that the modesetting driver will generate a
 1928     proper gamma ramp at that size even if xf86RandR12CrtcSetGamma() is fixed, just
 1929     disable use of GAMMA_LUT for sizes other than 1024 for now. This will cause the
 1930     modesetting driver to disable the CTM property and fall back to the legacy gamma
 1931     LUT.
 1932     
 1933     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 1934     Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1193
 1935     Tested-by: Mark Herbert
 1936 
 1937 commit e59e24c8779de65db87b8c07bc3f2abb479be082
 1938 Author: Povilas Kanapickas <povilas@radix.lt>
 1939 Date:   Mon Sep 6 22:41:32 2021 +0300
 1940 
 1941     glamor: Fix handling of 1-bit pixmaps
 1942     
 1943     Since 8702c938b33b9ec180d64754eb922515c7c4a98b the pixmap formats are
 1944     handled in a single place. In the process of conversion the difference
 1945     between pixmap formats that can be uploaded and those that can be
 1946     rendered on GL side has been lost. This affects only 1-bit pixmaps: as
 1947     they aren't supported on GL, but can be converted to a R8 or A8 format
 1948     for rendering (see glamor_get_tex_format_type_from_pictformat()).
 1949     
 1950     To work around this we add a separate flag that specifies whether the
 1951     format actually supports rendering in GL, convert all checks to use this
 1952     flag and then add 1-bit pixmap formats that don't support rendering in
 1953     GL.
 1954     
 1955     Fixes: 8702c938b33b9ec180d64754eb922515c7c4a98b
 1956     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1210
 1957     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 1958     Tested-by: Olivier Fourdan <ofourdan@redhat.com>
 1959     Reviewed-by: Adam Jackson <ajax@redhat.com>
 1960     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 1961 
 1962 commit 68f01c0f02ece4f6efe9ce18be81244246a1e114
 1963 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 1964 Date:   Mon Aug 30 05:42:04 2021 +0200
 1965 
 1966     modesetting: Add option for non-vsynced flips for "secondary" outputs.
 1967     
 1968     Whenever an unredirected fullscreen window uses pageflipping for a
 1969     DRI3/Present PresentPixmap() operation and the X-Screen has more than
 1970     one active output, multiple crtc's need to execute pageflips. Only
 1971     after the last flip has completed can the PresentPixmap operation
 1972     as a whole complete.
 1973     
 1974     If a sync_flip is requested for the present, then the current
 1975     implementation will synchronize each pageflip to the vblank of
 1976     its associated crtc. This provides tear-free image presentation
 1977     across all outputs, but introduces a different artifact, if not
 1978     all outputs run at the same refresh rate with perfect synchrony:
 1979     The slowest output throttles the presentation rate, and present
 1980     completion is delayed to flip completion of the "latest" output
 1981     to complete. This means degraded performance, e.g., a dual-display
 1982     setup with a 144 Hz monitor and a 60 Hz monitor will always be
 1983     throttled to at most 60 fps. It also means non-constant present
 1984     rate if refresh cycles drift against each other, creating complex
 1985     "beat patterns", tremors, stutters and periodic slowdowns - quite
 1986     irritating!
 1987     
 1988     Such a scenario will be especially annoying if one uses multiple
 1989     outputs in "mirror mode" aka "clone mode". One output will usually
 1990     be the "production output" with the highest quality and fastest
 1991     display attached, whereas a secondary mirror output just has a
 1992     cheaper display for monitoring attached. Users care about perfect
 1993     and perfectly timed tear-free presentation on the "production output",
 1994     but cares less about quality on the secondary "mirror output". They
 1995     are willing to trade quality on secondary outputs away in exchange
 1996     for better presentation timing on the "production output".
 1997     
 1998     One example use case for such production + monitoring displays are
 1999     neuroscience / medical science applications where one high quality
 2000     display device is used to present visual animations to test subjects
 2001     or patients in a fMRI scanner room (production display), whereas
 2002     an operator monitors the same visual animations from a control room
 2003     on a lower quality display. Presentation timing needs to be perfect,
 2004     and animations high-speed and tear-free for the production display,
 2005     whereas quality and timing don't matter for the monitoring display.
 2006     
 2007     This commit gives users the option to choose such a trade-off as
 2008     opt-in:
 2009     
 2010     It adds a new boolean option "AsyncFlipSecondaries" to the device section
 2011     of xorg.conf. If this option is specified as true, then DRI3 pageflip
 2012     behaviour changes as follows:
 2013     
 2014     1. The "reference crtc" for a windows PresentPixmap operation does a
 2015        vblank synced flip, or a DRM_MODE_PAGE_FLIP_ASYNC non-synchronized
 2016        flip, as requested by the caller, just as in the past. Typically
 2017        flips will be requested to be vblank synchronized for tear-free
 2018        presentation. The "reference crtc" is the one chosen by the caller
 2019        to drive presentation timing (as specified by PresentPixmap()'s
 2020        "target_msc", "divisor", "remainder" parameters and implemented by
 2021        vblank events) and to deliver Present completion timestamps (msc
 2022        and ust) extracted from its pageflip completion event.
 2023     
 2024     2. All other crtc's, which also page-flip in a multi-display configuration,
 2025        will try to flip with DRM_MODE_PAGE_FLIP_ASYNC, ie. immediately and
 2026        not synchronized to vblank. This allows the PresentPixmap operation
 2027        to complete with little delay compared to a single-display present,
 2028        especially if the different crtc's run at different video refresh
 2029        rates or their refresh cycles are not perfectly synchronized, but
 2030        drift against each other. The downside is potential tearing artifacts
 2031        on all outputs apart from the one of the "reference crtc".
 2032     
 2033     Successfully tested on a AMD gpu with single-display, dual-display and
 2034     triple-display setups, and with single-X-Screen as well as dual-X-Screen
 2035     "ZaphodHeads" configurations.
 2036     
 2037     Please consider merging this commit for the upcoming server 1.21 branch.
 2038     
 2039     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 2040 
 2041 commit 1fd5dec11bbb85e87f70a39f1c1b59af95a7feaf
 2042 Author: Ignacio Casal Quinteiro <qignacio@amazon.com>
 2043 Date:   Tue Sep 7 16:58:10 2021 +0200
 2044 
 2045     touchevents: set the screen pointer after checking the device is enabled
 2046     
 2047     If the device is disabled the sprite is NULL so we get a seg fault
 2048 
 2049 commit b3b81c8c2090cd49410960a021baf0d27fdd2ab3
 2050 Author: Povilas Kanapickas <povilas@radix.lt>
 2051 Date:   Fri Sep 3 14:33:15 2021 +0300
 2052 
 2053     Drop DMX DDX
 2054     
 2055     It turns out xdmx currently crashes when any client attempts to use GL
 2056     and it has been in such state for about 14 years. There was a patch to
 2057     fix the problem [1] 4 years ago, but it never got merged. The last
 2058     activity on any bugs referring to xdmx has been more than 4 years ago.
 2059     
 2060     Given such situation, I find it unlikely that anyone is still using xdmx
 2061     and just having the code is a drain of resources.
 2062     
 2063     [1]: https://lists.x.org/archives/xorg-devel/2017-June/053919.html
 2064     
 2065     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 2066 
 2067 commit 8f8ebf870b55c9875b7cfd8ef69c1df02d589b4a
 2068 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 2069 Date:   Sat Aug 28 02:27:20 2021 +0200
 2070 
 2071     modesetting: Allow Present flips with mismatched stride on atomic drivers.
 2072     
 2073     When using DRI3+Present with PRIME render offload, sometimes there is
 2074     a mismatch between the stride of the to-be-presented Pixmap and the
 2075     frontbuffer. The current code would reject a pageflip present in this
 2076     case if atomic modesetting is not enabled, ie. always, as atomic
 2077     modesetting is disabled by default due to brokeness in the current
 2078     modesetting-ddx.
 2079     
 2080     Fullscreen presents without page flipping however trigger the copy
 2081     path as fallback, which causes not only unreliable presentation timing
 2082     and degraded performance, but also massive tearing artifacts due to
 2083     rendering to the framebuffer without any hardware sync to vblank.
 2084     Tearing is extra awful on modesetting-ddx because glamor afaics seems
 2085     to use drawing of a textured triangle strip for the copy implementation,
 2086     not a dedicated blitter engine. The rasterization pattern creates extra
 2087     awful tearing artifacts.
 2088     
 2089     We can do better: According to a tip from Michel Daenzer (thanks!),
 2090     at least atomic modesetting capable kms drivers should be able to
 2091     reliably change scanout stride during a pageflip, even if atomic
 2092     modesetting is not actually enabled for the modesetting client.
 2093     
 2094     This commit adds detection logic to find out if the underlying kms
 2095     driver is atomic_modeset_capable, and if so, it no longer rejects
 2096     page flip presents on mismatched stride between new Pixmap and
 2097     frontbuffer.
 2098     
 2099     We (ab)use a call to drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 0);
 2100     for this purpose. The call itself has no practical effect, as it
 2101     requests disabling atomic mode, although atomic mode is disabled by
 2102     default. However, the return value of drmSetClientCap() tells us if the
 2103     underlying kms driver is atomic modesetting capable: An atomic driver
 2104     will return 0 for success. A legacy non-atomic driver will return a
 2105     non-zero error code, either -EINVAL for early atomic Linux versions
 2106     4.0 - 4.19 (or for non-atomic Linux 3.x and earlier), or -EOPNOTSUPP
 2107     for Linux 4.20 and later.
 2108     
 2109     Testing on a MacBookPro 2017 with Intel Kabylake display server gpu +
 2110     AMD Polaris11 as prime renderoffload gpu, X-Server master + Mesa 21.0.3
 2111     show improvement from unbearable tearing to perfect, despite a stride
 2112     mismatch between display gpu and Pixmap of 11776 Bytes vs. 11520
 2113     Bytes. That this is correct behaviour was also confirmed by comparing the
 2114     behaviour and .check_flip implementation of the patched modesetting-ddx
 2115     against the current intel-ddx SNA Present implementation.
 2116     
 2117     Please consider merging this patch before the server-1.21 branch point.
 2118     This patch could also be cherry-picked into the server 1.20 branch to
 2119     fix the same limitation.
 2120     
 2121     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 2122 
 2123 commit 7d34b1f2b7c612c3171e0b9758b5fc094bc33f63
 2124 Author: Simon Ser <contact@emersion.fr>
 2125 Date:   Fri Jun 18 11:04:45 2021 +0200
 2126 
 2127     xwayland: add -noTouchPointerEmulation
 2128     
 2129     In some scenarios, the Wayland compositor might have more knowledge
 2130     than the X11 server and may be able to perform pointer emulation for
 2131     touch events better. Add a command-line switch to allow compositors
 2132     to turn Xwayland pointer emulation off.
 2133     
 2134     Signed-off-by: Simon Ser <contact@emersion.fr>
 2135 
 2136 commit 7c63c582a17b206a33b57a70dd61e7919a6ef9fe
 2137 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 2138 Date:   Thu Aug 26 17:06:49 2021 +0200
 2139 
 2140     Revert "glamor: Enable modifier support for xfree86 too"
 2141     
 2142     This reverts commit 9b8999411033c9473cd68e92e4690a91aecf5b95.
 2143     
 2144     Turns out that defaulting glamor_egl->dmabuf_capable = TRUE
 2145     breaks kms page-flipping on various Mesa+Linux/DRM-KMS+hardware
 2146     combos, resulting in broken presentation timing, degraded performance
 2147     and awful tearing. E.g., my testing shows that X-Server master +
 2148     Mesa 21.2 + Linux 5.3 on Intel Kabylake has broken pageflipping.
 2149     Similar behaviour was observed in the past on RaspberryPi 4/400
 2150     with VideoCore-6 by myself and others, and iirc by myself on some
 2151     AMD gpu's, although my memories of the latter are a bit dim.
 2152     
 2153     Cfe. https://gitlab.freedesktop.org/mesa/mesa/-/issues/3601 and
 2154     possibly https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/254
 2155     for related problems.
 2156     
 2157     The reason for pageflip failure on the modesetting-ddx under
 2158     DRI3/Present seems to be the following sequence:
 2159     
 2160     1. Atomic modesetting for the modesetting-ddx is broken and therefore
 2161        both disabled by default in the modesetting-ddx itself and also
 2162        force-disabled by the Linux kernel since quite a while. If the kernel
 2163        detects drmSetClientCap(fd, DRM_CLIENT_CAP_ATOMIC, 1); from the
 2164        X-Server, it will reject the request, as a countermeasure to all the
 2165        past and current brokeness.
 2166     
 2167     2. Without DRM_CLIENT_CAP_ATOMIC we don't get the implied universal
 2168        planes support (DRM_CLIENT_CAP_UNIVERSAL_PLANES).
 2169     
 2170     3. Without DRM_CLIENT_CAP_UNIVERSAL_PLANES, drmModeGetPlaneResources()
 2171        will only return overlay planes, but not primary- or cursor planes.
 2172     
 2173     4. As modesetting-ddx drmmode_crtc_create_planes() function can only
 2174        operate on primary planes, but can't get any from drmModeGetPlaneResources(),
 2175        the drmmode_crtc_create_planes() mostly turns into a no-op, never
 2176        executes populate_format_modifiers() and therefore the Linux kernels
 2177        DRM-KMS driver is not ever queried for the list of scanout/pageflip
 2178        capable DRM format modifiers. Iow. the drmmode_crtc->formats[i].modifiers
 2179        list stays empty with zero drmmode_crtc->formats[i].num_modifiers.
 2180     
 2181     5. The list from step 4 provides the format+modifiers for intersection
 2182        which would get returned by the X-Servers DRI3 backend as response to
 2183        a xcb_dri3_get_supported_modifiers_window_modifiers() request. Given
 2184        an empty list was returned in step 4, this will lead to return of an
 2185        empty modifiers list by xcb_dri3_get_supported_modifiers_window_modifiers().
 2186     
 2187     6. Both Mesa's DRI3/Present OpenGL backbuffer allocation logic and iirc
 2188        Mesa/Vulkan/WSI/X11's swapchain image allocation logic use the list
 2189        from xcb_dri3_get_supported_modifiers_window_modifiers() for format+
 2190        modifier selection for scanout/pageflip capable buffers. Cfe. Mesa's
 2191        dri3_alloc_render_buffer() function.
 2192     
 2193        Due to the empty list, the Mesa code falls back to the format+modifiers
 2194        reported by xcb_dri3_get_supported_modifiers_screen_modifiers()
 2195        instead. This list contains all modifiers reported by GLAMOR as
 2196        result of glamor_get_formats() and glamor_get_modifiers(), which
 2197        in turn are query results from Mesa eglQueryDmaBufFormatsEXT()
 2198        and eglQueryDmaBufModifiersEXT(). Iow. all format+modifiers which
 2199        are supported for rendering are considered for the OpenGL backbuffers
 2200        and Vulkan swapchain buffers.
 2201     
 2202     7. Depending on kms driver + gpu combo and Mesa version, such buffers
 2203        are often not direct-scanout / pageflip capable, and so pageflipping
 2204        can't be used for DRI3/Present of fullscreen windows. Whenever the
 2205        system has to fallback to copies instead of pageflips, the results
 2206        are broken presentation timing, degraded performance and quite
 2207        horrible tearing, as the current DRI3/Present implementation does not
 2208        perform any hardware synchronization of copy presents to the start
 2209        of vblank or similar.
 2210     
 2211     By defaulting glamor_egl->dmabuf_capable = FALSE instead, as the server
 2212     1.20 branch does, we avoid this failure:
 2213     
 2214     1. glamor_get_modifiers() turns into a no-op and returns false, not
 2215        reporting any supported dmabuf modifiers to the servers DRI3 code,
 2216        ie. the servers cache_formats_and_modifiers() function can't retrieve
 2217        and cache any format+modifiers. Therefore the servers DRI3 code now
 2218        also reports an empty format+modifiers list when Mesa does a
 2219        xcb_dri3_get_supported_modifiers_screen_modifiers() query.
 2220     
 2221     2. Mesa's buffer allocation code therefore falls back to using the old
 2222        DRI image extensions createImage() function to allocate buffers
 2223        with use flags __DRI_IMAGE_USE_SCANOUT | __DRI_IMAGE_USE_BACKBUFFER
 2224        and our OpenGL backbuffers / Vulkan swapchain images get allocated
 2225        in a direct-scanout / pageflip capable format. Pageflipping works,
 2226        timing and performance is good, presentation is tear-free.
 2227     
 2228     Please consider merging this for branching the X-Server 1.21 branch.
 2229     
 2230     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 2231 
 2232 commit c5a9287dcf8d77ab104d56ac27ad6b1ff957fdfb
 2233 Author: Jon Turney <jon.turney@dronecode.org.uk>
 2234 Date:   Wed May 12 16:51:26 2021 +0100
 2235 
 2236     Don't underlink inputtest on targets which require complete linkage
 2237     
 2238     Don't underlink inputtest on targets which require complete linkage
 2239     (e.g. when building for PE/COFF)
 2240 
 2241 commit d68b50ec032fe4f02bde817abfd30328ec96a11c
 2242 Author: Jon Turney <jon.turney@dronecode.org.uk>
 2243 Date:   Sat Jul 10 17:38:01 2021 +0100
 2244 
 2245     Fix compilation with windows.h from latest w32api
 2246     
 2247     misc.h has complex logic (checking MAXSHORT is undefined etc.)
 2248     controlling if it includes assert.h or not.
 2249     
 2250     Including windows.h from w32api 9.0.0 now trips over that, causing
 2251     assert.h to not be included, causing various errors, e.g.
 2252     
 2253     In file included from ../include/cursor.h:53,
 2254                      from ../include/dix.h:54,
 2255                      from ../os/osdep.h:139,
 2256                      from ../hw/xwin/winauth.c:40:
 2257     ../include/privates.h: In function ‘dixGetPrivateAddr’:
 2258     ../include/privates.h:121:5: error: implicit declaration of function ‘assert’ [-Werror=implicit-function-declaration]
 2259     
 2260     Fix this by IWYU in privates.h
 2261 
 2262 commit ab86be0ed9233d6683daf00d359c562b12e137c8
 2263 Author: Mario Kleiner <mario.kleiner.de@gmail.com>
 2264 Date:   Fri Aug 27 19:27:29 2021 +0200
 2265 
 2266     modesetting: Fix VRR window property handling.
 2267     
 2268     A misplaced error check can cause this failure scenario, and does
 2269     so reliably as tested on Ubuntu 21.04 with KDE Plasma 5 desktop
 2270     within the first few seconds of login session startup, rendering
 2271     VRR under modesetting-ddx unusable:
 2272     
 2273     1. Some X11 client application changes some window property.
 2274     
 2275     2. ms_change_property() is called as part of the property change
 2276        handling call chain (client->requestVector[X_ChangeProperty]).
 2277        It removes itself temporarily from the call chain - or so it
 2278        thinks, hooking up saved_change_property instead.
 2279     
 2280     3. ret = saved_change_property(client) is called and fails
 2281        temporarily for some non-critical reason.
 2282     
 2283     4. The misplaced error check returns early (error abort), without
 2284        first restoring ms_change_property() as initial X_ChangeProperty
 2285        handler in the call chain again.
 2286     
 2287     -> Now ms_change_property() has removed itself permanently from the
 2288        property handler call chain for the remainder of the X session
 2289        and VRR property changes on windows are no longer handled, ie.
 2290        VRR no longer gets enabled/disabled in response to window VRR
 2291        property changes.
 2292     
 2293     Place the error check at the proper place, just as it is correctly
 2294     done by amdgpu-ddx, and in modesetting-ddx ms_delete_property()
 2295     function.
 2296     
 2297     Verified to fix VRR handling with an AMD gpu under KDE desktop
 2298     session.
 2299     
 2300     Please consider merging before branching the server 1.21 branch.
 2301     
 2302     Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
 2303 
 2304 commit 18d3131f9a332096825c09106a931c427246ddb7
 2305 Author: Povilas Kanapickas <povilas@radix.lt>
 2306 Date:   Thu Aug 5 22:43:54 2021 +0300
 2307 
 2308     meson: Implement developer documentation build
 2309     
 2310     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 2311 
 2312 commit 722da1c62caad961ce09fc226daf84465f4b7a7e
 2313 Author: Povilas Kanapickas <povilas@radix.lt>
 2314 Date:   Fri Aug 6 15:21:53 2021 +0300
 2315 
 2316     meson: Add option to disable libdrm support
 2317     
 2318     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 2319 
 2320 commit 1f720dc9a319bb66e2f5f28568614e81aa9e9e4d
 2321 Author: Adam Jackson <ajax@redhat.com>
 2322 Date:   Tue Aug 17 16:06:57 2021 -0400
 2323 
 2324     dmx: Fix some redeclaration warnings from gcc 11
 2325     
 2326     Of the form:
 2327     
 2328         ../hw/dmx/config/xdmxconfig.c:68:26: warning: redundant redeclaration of ‘dmxConfigEntry’ [-Wredundant-decls]
 2329            68 | extern DMXConfigEntryPtr dmxConfigEntry;
 2330               |                          ^~~~~~~~~~~~~~
 2331 
 2332 commit b49f0f9b323d66056aa9cd88f9ca1a124037bf32
 2333 Author: Adam Jackson <ajax@redhat.com>
 2334 Date:   Tue Aug 17 16:04:40 2021 -0400
 2335 
 2336     xkb: Silence a warning from gcc 11
 2337     
 2338     I get this:
 2339     
 2340         In function ‘TryCopyStr’,
 2341             inlined from ‘CopyISOLockArgs’ at ../xkb/xkbtext.c:875:9:
 2342         ../xkb/xkbtext.c:720:13: warning: ‘tbuf’ may be used uninitialized [-Wmaybe-uninitialized]
 2343           720 |             strcat(to, from);
 2344               |             ^~~~~~~~~~~~~~~~
 2345         ../xkb/xkbtext.c: In function ‘CopyISOLockArgs’:
 2346         <built-in>: note: by argument 1 of type ‘const char *’ to ‘__builtin_strlen’ declared here
 2347         ../xkb/xkbtext.c:871:10: note: ‘tbuf’ declared here
 2348           871 |     char tbuf[64];
 2349               |          ^~~~
 2350     
 2351     Just initialize tbuf so it definitely works.
 2352 
 2353 commit c1138d8ec8d029de54261e355c0e5da0b001044a
 2354 Author: Adam Jackson <ajax@redhat.com>
 2355 Date:   Fri Jul 9 15:30:16 2021 -0400
 2356 
 2357     xinput: Silence a warning from gcc 11
 2358     
 2359     [45/388] Compiling C object Xi/liblibxserver_xi.a.p/xichangehierarchy.c.o
 2360     ../Xi/xichangehierarchy.c:61:32: warning: argument 1 of type ‘int[256]’ with mismatched bound [-Warray-parameter=]
 2361        61 | XISendDeviceHierarchyEvent(int flags[MAXDEVICES])
 2362           |                            ~~~~^~~~~~~~~~~~~~~~~
 2363     In file included from ../Xi/xichangehierarchy.c:54:
 2364     ../Xi/xichangehierarchy.h:42:37: note: previously declared as ‘int[]’
 2365        42 | void XISendDeviceHierarchyEvent(int flags[]);
 2366           |                                 ~~~~^~~~~~~
 2367 
 2368 commit f3a98334e6a56858853f3894b0f48ee040741410
 2369 Author: Adam Jackson <ajax@redhat.com>
 2370 Date:   Fri Jul 9 15:26:47 2021 -0400
 2371 
 2372     selinux: Stop using security_context_t
 2373     
 2374     This is apparently deprecated now and is and was always just char *.
 2375 
 2376 commit 6f63873da55de33e51c1f6849a65501e380f19bc
 2377 Author: Simon Ser <contact@emersion.fr>
 2378 Date:   Mon Jul 5 15:30:16 2021 +0200
 2379 
 2380     xwayland: fix xdg_output leak
 2381     
 2382     The xdg_output wasn't cleaned up when destroying the xwl_output.
 2383     
 2384     Signed-off-by: Simon Ser <contact@emersion.fr>
 2385 
 2386 commit 659260a0b7c1cef6060bd62a83deb03e3fa472b1
 2387 Author: Demi Marie Obenour <demi@invisiblethingslab.com>
 2388 Date:   Fri Aug 6 13:23:08 2021 -0400
 2389 
 2390     More missing version checks in SProcs
 2391     
 2392     The bug in XFixes was also found in GenericEvent and Damage.
 2393 
 2394 commit e4dabe8d9395d60699aa9831626920adaa847680
 2395 Author: Roman Gilg <subdiff@gmail.com>
 2396 Date:   Sat Aug 7 14:15:07 2021 +0200
 2397 
 2398     Remove build-only include from public header
 2399     
 2400     The dix-config.h file is not installed, but dix.h is. The include makes the
 2401     compilation of external drivers fail (for example the libinput driver).
 2402     
 2403     The Xserver compilation also works without the include, so just remove it.
 2404     
 2405     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 2406 
 2407 commit 31fb35a7afc782e857bf60e524e7d966dbcd2551
 2408 Author: Demi Marie Obenour <demi@invisiblethingslab.com>
 2409 Date:   Tue Jul 20 22:58:42 2021 -0400
 2410 
 2411     XFixes: add version check for byteswapped clients
 2412     
 2413     The version check for byteswapped clients was missing.
 2414 
 2415 commit 7eba412072afdc9d27896410872e40364a8010bf
 2416 Author: Olivier Fourdan <ofourdan@redhat.com>
 2417 Date:   Fri Mar 26 15:48:23 2021 +0100
 2418 
 2419     xfree86: Move xf86CVTMode() function
 2420     
 2421     The xf86CVTMode() was implemented in a standalone source file because it
 2422     was being used for both the xfree86 API and the standalone cvt utility.
 2423     
 2424     Now that the cvt utility is removed (as part of libxcvt) we can move the
 2425     small xf86CVTMode() function with the rest of the xf86Modes sources.
 2426     
 2427     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142
 2428     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 2429     Reviewed-by: Matt Turner <mattst88@gmail.com>
 2430 
 2431 commit f2781e95369583259991cd3add6f90f33be32171
 2432 Author: Olivier Fourdan <ofourdan@redhat.com>
 2433 Date:   Thu Mar 25 10:27:31 2021 +0100
 2434 
 2435     xfree86/cvt: Drop cvt utility
 2436     
 2437     The cvt utility is now replaced by the standalone version found in
 2438     libxcvt, no need to build the one in xfree86 anymore.
 2439     
 2440     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142
 2441     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 2442     Reviewed-by: Matt Turner <mattst88@gmail.com>
 2443 
 2444 commit f788289bdcc4f04bd2fb62552df1c8c1ae0aea45
 2445 Author: Olivier Fourdan <ofourdan@redhat.com>
 2446 Date:   Thu Mar 25 10:19:55 2021 +0100
 2447 
 2448     xfree86: Use libxcvt
 2449     
 2450     Replace the local implementation of the VESA CVT standard timing
 2451     modelines generator with the one from libxct to avoid code duplication.
 2452     
 2453     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142
 2454     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 2455     Reviewed-by: Matt Turner <mattst88@gmail.com>
 2456 
 2457 commit 6ea2c001f9d23c91113b937fb99053e262d21df6
 2458 Author: Olivier Fourdan <ofourdan@redhat.com>
 2459 Date:   Thu Mar 25 10:17:49 2021 +0100
 2460 
 2461     xwayland: Use libxcvt
 2462     
 2463     Xwayland is using a copy of the CVT generator found in Xorg.
 2464     
 2465     Rather than duplicating the code within the xserver tree, use the
 2466     libxcvt implementation instead.
 2467     
 2468     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142
 2469     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 2470     Reviewed-by: Matt Turner <mattst88@gmail.com>
 2471 
 2472 commit a4ab57cb748674823744a8ef5a0b416ee553efe8
 2473 Author: Olivier Fourdan <ofourdan@redhat.com>
 2474 Date:   Thu Mar 25 10:16:31 2021 +0100
 2475 
 2476     build: Add dependency on libxcvt
 2477     
 2478     libxcvt is a library providing a standalone version of the X server
 2479     implementation of the VESA CVT standard timing modelines generator.
 2480     
 2481     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1142
 2482     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 2483     Reviewed-by: Matt Turner <mattst88@gmail.com>
 2484 
 2485 commit 84897891e5e7eb44068cda22284dca70c6cfd1a2
 2486 Author: Olivier Fourdan <ofourdan@redhat.com>
 2487 Date:   Fri Jul 9 15:11:51 2021 +0200
 2488 
 2489     ci: Install libxcvt from git
 2490     
 2491     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 2492 
 2493 commit 5c2592cbb19f996c4bb87bca4e4e46ab911d4bec
 2494 Author: Demi Marie Obenour <demi@invisiblethingslab.com>
 2495 Date:   Tue Jul 20 22:37:26 2021 -0400
 2496 
 2497     Add do-while loops to DIX macros
 2498     
 2499     This ensures they will behave properly in conditionals and always
 2500     require a trailing semicolon.
 2501 
 2502 commit d83c84bd9dc7fbd3588ce70b0c8bf0f63ed29ff3
 2503 Author: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
 2504 Date:   Fri Jul 23 09:24:50 2021 +0100
 2505 
 2506     Mark the dixChangeWindowProperty() value argument as const
 2507     
 2508     It is copied using memcpy() and not modified so we can add const. This
 2509     fixes a -Wincompatible-pointer-types-discards-qualifiers compiler warning
 2510     that was failing a -Werror XVnc build for me.
 2511     
 2512     Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
 2513 
 2514 commit fb5322ce2819260c07e06ab22b47df0a5d19f07d
 2515 Author: Zoltán Böszörményi <zboszor@gmail.com>
 2516 Date:   Thu Jul 8 06:14:21 2021 +0200
 2517 
 2518     glamoregl: Initialize glamor on the main device
 2519     
 2520     This allows e.g. an UDL device (driven by llvmpipe) to be automatically
 2521     set up with GPU acceleration via reverse PRIME.
 2522     
 2523     The result is e.g.:
 2524     
 2525       # DISPLAY=:0.2 xrandr --listproviders
 2526       Providers: number : 2
 2527       Provider 0: id: 0xec cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 1 outputs: 1 associated providers: 1 name:modesetting
 2528       Provider 1: id: 0x12c cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 1 name:Intel
 2529     
 2530     Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
 2531 
 2532 commit f08bc32f5abc23ea715c15e8e86150434cc99e4f
 2533 Author: Zoltán Böszörményi <zboszor@gmail.com>
 2534 Date:   Thu Jul 8 06:13:24 2021 +0200
 2535 
 2536     xf86: Assign GPUs to screens according to configuration
 2537     
 2538     If there is an explicit configuration, assign the RandR provider
 2539     of the GPUDevice to the screen it was specified for.
 2540     
 2541     If there is no configuration (default case) the screen number is
 2542     still 0 so it doesn't change behaviour.
 2543     
 2544     The result is e.g:
 2545     
 2546       # DISPLAY=:0.2 xrandr --listproviders
 2547       Providers: number : 2
 2548       Provider 0: id: 0xd2 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting
 2549       Provider 1: id: 0xfd cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 0 name:Intel
 2550     
 2551     Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
 2552 
 2553 commit cd567415cc5645f8cdc78e85e8887e5cce76e6d7
 2554 Author: Zoltán Böszörményi <zboszor@gmail.com>
 2555 Date:   Thu Jul 8 06:09:44 2021 +0200
 2556 
 2557     xf86: Extract screen configuration matching into its own function
 2558     
 2559     Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
 2560 
 2561 commit 16571b8926a5a7ba5a1885b36a16857addbe8f41
 2562 Author: Boris-Barboris <ismailsiege@gmail.com>
 2563 Date:   Tue Jun 22 00:51:08 2021 +0300
 2564 
 2565     Don't hardcode fps for fake screen
 2566     
 2567     Currently, when main hardware screen is powered-off,
 2568     X server initializes fake screen's timer with
 2569     1 second update interval.
 2570     
 2571     Streaming software like Nomachine or Vnc, as well as
 2572     desktop input automation suffers from it, since it
 2573     will forever be stuck on 1 fps until the display is
 2574     turned back on.
 2575     
 2576     This commit adds command line option -fakescreenfps <int>
 2577     that allows the user to change the default fake screen
 2578     timer.
 2579     
 2580     Signed-off-by: Baranin Alexander <ismailsiege@gmail.com>
 2581 
 2582 commit 8836b9d243444031b6396d39d345f2f83b5fa6a9
 2583 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 2584 Date:   Thu Jul 22 13:12:05 2021 +0200
 2585 
 2586     modesetting: unflip not possible when glamor is not set
 2587     
 2588     This is fixing crashes of xfce when running under qemu
 2589 
 2590 commit d6c02ffd9c910637f6b3b7249507998e9e45f93c
 2591 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 2592 Date:   Mon Jul 19 14:25:28 2021 +0200
 2593 
 2594     present: fallback get_crtc to return crtc belonging to screen with present extension
 2595     
 2596     Since crtc can belong to secondary output that may not have present
 2597     extension enabled we should fallback to first enabled crtc or fake crtc.
 2598     
 2599     Fix for issue xorg/xserver#1195
 2600 
 2601 commit f6f2f203bcde47c334836191982d77bbbbbf533c
 2602 Author: Michel Dänzer <mdaenzer@redhat.com>
 2603 Date:   Thu May 20 19:00:10 2021 +0200
 2604 
 2605     present: Drop flip_idler member from present_vblank_rec
 2606     
 2607     It's redundant with the pixmap member of struct xwl_present_event.
 2608     
 2609     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2610 
 2611 commit 212cfbcf68d279f2b3494e79fe8e3fbaabeba77c
 2612 Author: Michel Dänzer <mdaenzer@redhat.com>
 2613 Date:   Wed May 12 15:25:51 2021 +0200
 2614 
 2615     xwayland/present: Use present_vblank_ptr instead of xwl_present_event*
 2616     
 2617     Where the latter isn't really needed.
 2618     
 2619     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2620 
 2621 commit fe8c7855f3a85f156c792a3f18a175138407054b
 2622 Author: Michel Dänzer <mdaenzer@redhat.com>
 2623 Date:   Wed May 12 12:51:32 2021 +0200
 2624 
 2625     xwayland/present: Fold xwl_present_release_event into _free_event
 2626     
 2627     The only difference was unhooking from the vblank.event_queue list,
 2628     which is already done by xwl_present_flip_notify_vblank in
 2629     xwl_present_msc_bump.
 2630 
 2631 commit 31d2ebca77fcabec81194ae6dcd724c699b1b513
 2632 Author: Michel Dänzer <mdaenzer@redhat.com>
 2633 Date:   Mon May 10 18:33:43 2021 +0200
 2634 
 2635     xwayland/present: Drop target_msc member from struct xwl_present_event
 2636     
 2637     Use present_vblank_rec::exec_msc instead.
 2638     
 2639     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2640 
 2641 commit 495ec596640e26b6995c93eedc922d2702ad64ad
 2642 Author: Michel Dänzer <mdaenzer@redhat.com>
 2643 Date:   Mon May 10 19:04:07 2021 +0200
 2644 
 2645     xwayland/present: Drop pending member from struct xwl_present_event
 2646     
 2647     We are handling two cases here: the active flip or the pending flip.
 2648     
 2649     For the pending flip (event->pending == TRUE), we called
 2650     xwl_present_release_pixmap.
 2651     
 2652     For the active flip (event->pending == FALSE), we called
 2653     xwl_present_release_event. However, xwl_present_flip_notify_vblank
 2654     already unhooked event->vblank.event_queue. So this was effectively the
 2655     same as calling xwl_present_release_pixmap.
 2656     
 2657     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2658 
 2659 commit f73340445fe1da9ae9bc3197eb2ef41589aa2a4e
 2660 Author: Michel Dänzer <mdaenzer@redhat.com>
 2661 Date:   Fri May 7 18:16:23 2021 +0200
 2662 
 2663     xwayland/present: Drop list member from struct xwl_present_event
 2664     
 2665     Use present_vblank_rec::event_queue instead.
 2666     
 2667     The changes in xwl_present_execute shouldn't really be needed, since
 2668     we should never hit queue_vblank in present_execute_wait. But let's be
 2669     safe rather than sorry, plus this simplifies the code.
 2670     
 2671     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2672 
 2673 commit aac31d2758d4e84774b633ec108d18f0bad6ef64
 2674 Author: Michel Dänzer <mdaenzer@redhat.com>
 2675 Date:   Fri May 7 17:58:27 2021 +0200
 2676 
 2677     xwayland/present: Drop exec_queue member from struct xwl_present_window
 2678     
 2679     Doesn't serve any purpose anymore.
 2680     
 2681     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2682 
 2683 commit f8c086b2145d1c9364e9b43ff4d796791d8af169
 2684 Author: Michel Dänzer <mdaenzer@redhat.com>
 2685 Date:   Fri May 7 17:55:13 2021 +0200
 2686 
 2687     xwayland/present: Fold xwl_present_event_notify into its caller
 2688     
 2689     Can just call xwl_present_execute directly.
 2690     
 2691     This allows dropping the window member from struct xwl_present_window as
 2692     well.
 2693     
 2694     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2695 
 2696 commit c30f3d08acb01a41df0fe7176f237137f3039480
 2697 Author: Michel Dänzer <mdaenzer@redhat.com>
 2698 Date:   Fri May 7 17:49:07 2021 +0200
 2699 
 2700     xwayland/present: Use exec_queue for deferring completion events
 2701     
 2702     We clear the vblank->pixmap field, so next time xwl_present_execute
 2703     falls through to present_execute_post.
 2704     
 2705     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2706 
 2707 commit 4503c8d9ea7df5bda470501e638a730d91d718c9
 2708 Author: Michel Dänzer <mdaenzer@redhat.com>
 2709 Date:   Fri May 7 12:56:30 2021 +0200
 2710 
 2711     xwayland/present: Fold xwl_present_idle_notify into its caller
 2712     
 2713     Allows simplification by avoiding indirection.
 2714     
 2715     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2716 
 2717 commit b2a06e0700fa48c1e77fc687e6af39a4bb7c2ceb
 2718 Author: Michel Dänzer <mdaenzer@redhat.com>
 2719 Date:   Fri May 7 12:34:49 2021 +0200
 2720 
 2721     xwayland/present: Drop sync_flip member of struct xwl_present_window
 2722     
 2723     The same information can be determined from the flip queue.
 2724     
 2725     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2726 
 2727 commit fc53e3c536b5a338c595b5724c7d0b4734e45871
 2728 Author: Michel Dänzer <mdaenzer@redhat.com>
 2729 Date:   Thu May 6 18:42:46 2021 +0200
 2730 
 2731     xwaland/present: Drop flip_pending member of struct xwl_present_window
 2732     
 2733     Use the first element of the flip_queue list for the same purpose.
 2734     
 2735     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2736 
 2737 commit c592c66625d964e8ed1f3fcfc01a245e4c8a8015
 2738 Author: Michel Dänzer <mdaenzer@redhat.com>
 2739 Date:   Fri May 7 12:21:44 2021 +0200
 2740 
 2741     xwayland/present: Fold xwl_present_flip_notify into its callers
 2742     
 2743     No need for them to be separate anymore.
 2744     
 2745     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2746 
 2747 commit 42301760802ea1cbe3698797c2bfb3a91ee02430
 2748 Author: Michel Dänzer <mdaenzer@redhat.com>
 2749 Date:   Fri Apr 23 12:59:55 2021 +0200
 2750 
 2751     xwayland/present: Embed present_vblank_rec in xwl_present_event
 2752     
 2753     This allows for various simplifications.
 2754     
 2755     Use the pointer to the struct memory as the event ID. In contrast to
 2756     the SCMD code for Xorg (where pending DRM events cannot be cancelled),
 2757     this is safe here, because we can destroy pending Wayland callbacks. So
 2758     we can't get a callback with a stale pointer to freed memory.
 2759     
 2760     Remove xwl_present_window::release_list in favour of
 2761     present_vblank_rec::window_list.
 2762     
 2763     Remove xwl_present_event::xwl_present_window in favour of
 2764     present_vblank_rec::window.
 2765     
 2766     xwl_present_free_event is never called for a NULL pointer anymore, no
 2767     need to check.
 2768     
 2769     v2:
 2770     * Restore DestroyWindow wrapping order to make sure
 2771       present_destroy_window doesn't call xwl_present_abort_vblank.
 2772     
 2773     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2774 
 2775 commit 61cc5d96ed281a082d8dd414506dea0084e446fd
 2776 Author: Michel Dänzer <mdaenzer@redhat.com>
 2777 Date:   Wed May 5 15:02:25 2021 +0200
 2778 
 2779     present: Refactor present_vblank_init helper ouf of _vblank_create
 2780     
 2781     Allows embedding into another struct.
 2782     
 2783     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2784 
 2785 commit 35f173ddb606f9fbac7957e427fe28a377204cfe
 2786 Author: Michel Dänzer <mdaenzer@redhat.com>
 2787 Date:   Thu Apr 29 18:44:04 2021 +0200
 2788 
 2789     xwayland/present: Drop abort member of struct xwl_present_event
 2790     
 2791     We can call xwl_present_free_event unconditionally from
 2792     xwl_present_abort_vblank, since the sync_callback is already destroyed
 2793     in xwl_present_cleanup.
 2794     
 2795     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2796 
 2797 commit 0517460301cbf9c6ed3020ef1dd0cd1df94ea178
 2798 Author: Michel Dänzer <mdaenzer@redhat.com>
 2799 Date:   Tue May 11 12:56:53 2021 +0200
 2800 
 2801     xwayland/present: Simplify calls to Xwayland-private functions
 2802     
 2803     Change parameter types to what's really needed, or just fold the
 2804     function into its only caller.
 2805     
 2806     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2807 
 2808 commit 490248ea70d3fe923446e17312880ae63590d45c
 2809 Author: Michel Dänzer <mdaenzer@redhat.com>
 2810 Date:   Mon Apr 19 12:59:56 2021 +0200
 2811 
 2812     xwayland/present: Rename present_wnmd_* functions to xwl_present_*
 2813     
 2814     The WNMD indirection is gone.
 2815     
 2816     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2817 
 2818 commit 0c0cbbc7cb4fa917a2b33494efb6dc03e5de9051
 2819 Author: Michel Dänzer <mdaenzer@redhat.com>
 2820 Date:   Wed Apr 21 17:15:27 2021 +0200
 2821 
 2822     present: Remove present_wnmd_info_rec
 2823     
 2824     Doesn't serve any purpose anymore.
 2825     
 2826     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2827 
 2828 commit 561c63d0f13a8c6379ed05338172570f93dbce37
 2829 Author: Michel Dänzer <mdaenzer@redhat.com>
 2830 Date:   Mon Apr 19 18:41:59 2021 +0200
 2831 
 2832     xwayland/present: Merge present_wnmd_flips_stop & xwl_present_flips_stop
 2833     
 2834     Just use the latter instead of the former elsewhere. No need for them
 2835     to be separate anymore.
 2836     
 2837     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2838 
 2839 commit a67f16fde1ff094c3ec4fffe8a7269b30c7b8668
 2840 Author: Michel Dänzer <mdaenzer@redhat.com>
 2841 Date:   Mon Apr 19 18:53:36 2021 +0200
 2842 
 2843     xwayland/present: Fold present_wnmd_get_ust_msc into its callers
 2844     
 2845     Just use xwl_present_get_ust_msc directly. No need for the indirection
 2846     anymore.
 2847     
 2848     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2849 
 2850 commit 080c1ca3f57b4226f34624b0cd2171ffbbc2be4f
 2851 Author: Michel Dänzer <mdaenzer@redhat.com>
 2852 Date:   Mon Apr 19 18:46:23 2021 +0200
 2853 
 2854     xwayland/present: Fold present_wnmd_queue_vblank into its callers
 2855     
 2856     Just use xwl_present_queue_vblank directly. No need for the indirection
 2857     anymore.
 2858     
 2859     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2860 
 2861 commit c22887bc7a83e9b8ad112aadaec069b0366fc38e
 2862 Author: Michel Dänzer <mdaenzer@redhat.com>
 2863 Date:   Mon Apr 19 18:51:06 2021 +0200
 2864 
 2865     xwayland/present: Fold present_wnmd_get_crtc into present_wnmd_pixmap
 2866     
 2867     And use xwl_present_get_crtc directly.
 2868     
 2869     No need for them to be separate anymore.
 2870     
 2871     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2872 
 2873 commit cb35ff596ec4e4fc6a4e96d55e280cdf399791e1
 2874 Author: Michel Dänzer <mdaenzer@redhat.com>
 2875 Date:   Mon Apr 19 18:34:07 2021 +0200
 2876 
 2877     xwayland/present: Fold present_wnmd_check_flip into its callers
 2878     
 2879     Mainly into xwl_present_check_flip, and call that from
 2880     present_wnmd_check_flip_window.
 2881     
 2882     No need for them to be separate anymore.
 2883     
 2884     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2885 
 2886 commit 7b78cf6b3ae386b9df2483692041dfa38a91bedb
 2887 Author: Michel Dänzer <mdaenzer@redhat.com>
 2888 Date:   Mon Apr 19 18:26:55 2021 +0200
 2889 
 2890     xwayland/present: Simplify query_capabilities
 2891     
 2892     No need for the WNMD indirection anymore.
 2893     
 2894     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2895 
 2896 commit 244403ec8718d782d57a830ece9357a75a0dd70b
 2897 Author: Michel Dänzer <mdaenzer@redhat.com>
 2898 Date:   Mon Apr 19 18:01:52 2021 +0200
 2899 
 2900     xwayland/present: Fold present_wnmd_abort_vblank into its only caller
 2901     
 2902     No need for them to be separate anymore.
 2903     
 2904     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2905 
 2906 commit f7adbc2166b7a4662cbd69507d8cbac11034c87e
 2907 Author: Michel Dänzer <mdaenzer@redhat.com>
 2908 Date:   Mon Apr 19 18:06:22 2021 +0200
 2909 
 2910     xwayland/present: Drop present_wnmd_flush in favour of xwl_present_flush
 2911     
 2912     No need for the indirection anymore.
 2913     
 2914     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2915 
 2916 commit 7fd114365d694360540bc46cd615aa47373be0a8
 2917 Author: Michel Dänzer <mdaenzer@redhat.com>
 2918 Date:   Mon Apr 19 19:02:32 2021 +0200
 2919 
 2920     xwayland/present: Fold present_wnmd_flip into present_wnmd_execute
 2921     
 2922     No need for the indirection anymore.
 2923     
 2924     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2925 
 2926 commit 2e1dcd731f98a8beceee699cc57b7082f98916c4
 2927 Author: Michel Dänzer <mdaenzer@redhat.com>
 2928 Date:   Tue Apr 20 19:01:12 2021 +0200
 2929 
 2930     xwayland/present: Fold present_wnmd_screen_init into xwl_present_init
 2931     
 2932     No need for them to be separate anymore.
 2933     
 2934     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2935 
 2936 commit b6419359b6b11ec659f59cc74075fcf049591425
 2937 Author: Michel Dänzer <mdaenzer@redhat.com>
 2938 Date:   Wed Apr 21 12:50:02 2021 +0200
 2939 
 2940     present: Move present_wnmd.c contents to hw/xwayland/xwayland-present.c
 2941     
 2942     This will allow eliminating indirections and making the Xwayland Present
 2943     code more efficient and easier to follow.
 2944     
 2945     While this technically changes the Xorg video driver ABI, I don't know
 2946     of any drivers using the dropped present_wnmd_* symbols, and I doubt a
 2947     Xorg driver could make use of them as is anyway.
 2948     
 2949     (As a bonus, Xorg no longer links any Xwayland specific Present code)
 2950     
 2951     v2:
 2952     * Wrap DestroyWindow before initializing Present, so that
 2953       present_destroy_window runs before xwl_present_cleanup. Avoids crash
 2954       due to present_destroy_window calling xwl_present_* functions when
 2955       xwl_present_window was already freed. (Olivier Fourdan)
 2956     
 2957     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2958 
 2959 commit c35a716b02921e2fcae5fe89295a99c6dd5dec8c
 2960 Author: Michel Dänzer <mdaenzer@redhat.com>
 2961 Date:   Fri Apr 16 18:45:39 2021 +0200
 2962 
 2963     present: Fold wnmd_init_mode_hooks into wnmd_screen_init
 2964     
 2965     Preparation for moving WNMD code to hw/xwayland. No functional change
 2966     intended.
 2967     
 2968     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2969 
 2970 commit 10bdd87fe49cbd9b4c4b584024d663b928d3f1be
 2971 Author: Michel Dänzer <mdaenzer@redhat.com>
 2972 Date:   Fri Apr 16 18:43:48 2021 +0200
 2973 
 2974     present: Move present_wnmd_screen_init to present_wnmd.c
 2975     
 2976     Now all WNMD code is in present_wnmd.c.
 2977     
 2978     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2979 
 2980 commit b6d54b0f5d2fb3dc8a4b2812bfee94112c332256
 2981 Author: Michel Dänzer <mdaenzer@redhat.com>
 2982 Date:   Wed Apr 21 17:01:36 2021 +0200
 2983 
 2984     present: Dispatch clear_window_flip via present_screen_priv hook
 2985     
 2986     Eliminates special cases in present_destroy_window.
 2987     
 2988     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2989 
 2990 commit 93666ebe37a9c8d64b814c7af6b895f89ca5ff88
 2991 Author: Michel Dänzer <mdaenzer@redhat.com>
 2992 Date:   Wed Apr 21 18:39:36 2021 +0200
 2993 
 2994     present: Remove create_event_id hook
 2995     
 2996     Each present_vblank_create caller generates and sets the ID afterwards.
 2997     
 2998     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 2999 
 3000 commit 44f705a5b6b4f79682c5e649eb718a193e01ec47
 3001 Author: Michel Dänzer <mdaenzer@redhat.com>
 3002 Date:   Mon Apr 19 18:19:30 2021 +0200
 3003 
 3004     present: Pass capabilities to present_vblank_create by value
 3005     
 3006     Preparation for moving WNMD code to hw/xwayland. No functional change
 3007     intended.
 3008     
 3009     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 3010 
 3011 commit 86e645bcfaea63bc3f91e4ccbbc19569929b92c3
 3012 Author: Michel Dänzer <mdaenzer@redhat.com>
 3013 Date:   Fri Jul 2 12:41:34 2021 +0200
 3014 
 3015     xwayland/eglstream: Drop xwl_eglstream_set_window_pixmap
 3016     
 3017     Not sure why we'd need to abandon a pending stream for a pixmap just
 3018     because it's no longer a window pixmap. Let's try not to.
 3019     
 3020     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 3021 
 3022 commit ba8763c27b2ebc91850abfcaf32ae972e80142e7
 3023 Author: Michel Dänzer <mdaenzer@redhat.com>
 3024 Date:   Fri Jul 2 12:57:21 2021 +0200
 3025 
 3026     xwayland/eglstream: Consolidate pending_cb destruction
 3027     
 3028     Into a new xwl_eglstream_destroy_pending_stream helper.
 3029     
 3030     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 3031 
 3032 commit 204f10c29e0f323e7829ecf48e0f002be96e194d
 3033 Author: Michel Dänzer <mdaenzer@redhat.com>
 3034 Date:   Wed Jul 7 18:53:35 2021 +0200
 3035 
 3036     xwayland: Call RRTellChanged if the RandR configuration may have changed
 3037     
 3038     This makes sure RandR events are sent to interested clients as needed.
 3039     This was happening implicitly in some cases, but not in others, e.g. if
 3040     the root window size didn't change.
 3041     
 3042     If this were to call RRTellChanged more often than necessary in some
 3043     cases, that should be harmless, as it only sends events if something
 3044     has actually changed since last time.
 3045     
 3046     Should fix https://bugzilla.redhat.com/show_bug.cgi?id=1979892 .
 3047     
 3048     v2:
 3049     * Call RRTellChanged at the very end of update_screen_size, just in
 3050       case.
 3051     
 3052     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 3053 
 3054 commit a6d178b6af4bb4cd7ba28299c3ddd9d90bcbaaa5
 3055 Author: Michel Dänzer <mdaenzer@redhat.com>
 3056 Date:   Wed Jul 7 18:51:02 2021 +0200
 3057 
 3058     randr: Bail from RRTellChanged if there's no root window yet
 3059     
 3060     This can happen if RRTellChanged is called during initialization.
 3061     
 3062     Continuing in that case makes no sense conceptually:
 3063     
 3064     * Any event sent over the wire requires a corresponding window.
 3065     * No root window probably means there can't be any clients which could
 3066       receive the events.
 3067     
 3068     In practice, it would result in a crash down the road due to
 3069     dereferencing the NULL ScreenRec::root pointer.
 3070     
 3071     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 3072 
 3073 commit 7e20c8b7b8357eb8986f89e85be22ab1c29f2ca4
 3074 Author: Matt Turner <mattst88@gmail.com>
 3075 Date:   Thu Jul 8 12:15:13 2021 -0700
 3076 
 3077     Build xz tarballs instead of bzip2
 3078     
 3079     Signed-off-by: Matt Turner <mattst88@gmail.com>
 3080 
 3081 commit a9552868697cae02e37e67ae774a072885f202f8
 3082 Author: Dave Airlie <airlied@redhat.com>
 3083 Date:   Thu Jul 1 06:48:55 2021 +1000
 3084 
 3085     glamor: add EXT_gpu_shader4 support
 3086     
 3087     This enables a number of the GLSL 1.30 paths on GPUs that have
 3088     EXT_gpu_shader4 but don't have GLSL 1.30 exposed.
 3089     
 3090     (Intel gen4/5 mainly)
 3091     
 3092     Reviewed-by: Adam Jackson <ajax@redhat.com>
 3093 
 3094 commit a2f5b917f511fca1c9b1501495664e2f63c2e1b0
 3095 Author: Dave Airlie <airlied@redhat.com>
 3096 Date:   Fri Jul 2 04:52:23 2021 +1000
 3097 
 3098     glamor: add glamor_glsl_has_ints wrapper
 3099     
 3100     This should make adding gpu shader4 support cleaner
 3101     
 3102     Reviewed-by: Adam Jackson <ajax@redhat.com>
 3103 
 3104 commit b4f55712da4d7294bfeb6cffc45b572fd999d800
 3105 Author: Povilas Kanapickas <povilas@radix.lt>
 3106 Date:   Mon Jul 5 21:40:55 2021 +0300
 3107 
 3108     xserver 21.0.99.1
 3109     
 3110     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3111 
 3112 commit b67e514dbb59bffc23b75d47ca7f24e96c4aeb05
 3113 Author: Povilas Kanapickas <povilas@radix.lt>
 3114 Date:   Sat Jun 26 09:44:39 2021 +0300
 3115 
 3116     meson: Fix warnings when reading back and checking feature flags
 3117     
 3118     Meson does not like comparing things of different types which is a
 3119     problem when reading back values of feature flags as they may contain
 3120     either false (bool) or 1 (string).
 3121     
 3122     Since there is a strong reason why we use false when the feature does
 3123     not exist, we work around this issue by always converting the returned
 3124     value to int via to_int().
 3125     
 3126     Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1190
 3127     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3128 
 3129 commit b2a0de4f072fdcc0fb20a0853f7edaf714add9d9
 3130 Author: Adam Jackson <ajax@redhat.com>
 3131 Date:   Tue Jun 22 12:39:56 2021 -0400
 3132 
 3133     xfixes: Allow the client to upgrade the fixes protocol version
 3134     
 3135     If you say FixesQueryVersion twice we remember whatever the second
 3136     version number was. With just libXfixes this isn't an issue because the
 3137     request is hidden in extension setup, but libxcb-xfixes doesn't do that
 3138     for you, which means the second one can _lower_ the requested fixes
 3139     version, disabling requests that the client thought it had enabled.
 3140     
 3141     Paper over this by allowing the version number to be raised but not
 3142     lowered. Also go ahead and delete the minor version number from the
 3143     client state since xfixes doesn't have minor versions (yet, anyway).
 3144 
 3145 commit 7d509b6f342d9732b567dc4efa867ea24919853b
 3146 Author: Olivier Fourdan <ofourdan@redhat.com>
 3147 Date:   Fri Apr 30 09:56:05 2021 +0200
 3148 
 3149     xwayland/eglstream: Remove stream validity
 3150     
 3151     To avoid an EGL stream in the wrong state, if the window pixmap changed
 3152     before the stream was connected, we would still keep the pending stream
 3153     but mark it as invalid. Once the callback is received, the pending would
 3154     be simply discarded.
 3155     
 3156     But all of this is actually to avoid a bug in egl-wayland, there should
 3157     not be any problem with Xwayland destroying an EGL stream while the
 3158     compositor is still using it.
 3159     
 3160     With that bug now fixed in egl-wayland 1.1.7, we can safely drop all
 3161     that logic from Xwayland EGLstream backend.
 3162     
 3163     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3164     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3165     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1189
 3166 
 3167 commit 2be9f795bc15012dc912f595003e01bb6aa66f54
 3168 Author: Olivier Fourdan <ofourdan@redhat.com>
 3169 Date:   Wed Jun 23 11:35:17 2021 +0200
 3170 
 3171     xwayland/eglstream: Keep pending stream if the pixmap didn't change
 3172     
 3173     If the pixmap does not actually change in set_window_pixmap(), there is
 3174     no need to invalidate the pending stream, if there's one.
 3175     
 3176     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3177     Suggested-by: Michel Dänzer <mdaenzer@redhat.com>
 3178     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3179 
 3180 commit 2531ee02450e3be3549daa09407557c3addeba02
 3181 Author: orbea <orbea@riseup.net>
 3182 Date:   Wed Jun 23 05:50:21 2021 -0700
 3183 
 3184     hw/dmx/config: Link directly with libdmxconfig.a
 3185     
 3186     When building xserver with slibtool (https://dev.midipix.org/cross/slibtool)
 3187     the build will fail.
 3188     
 3189       /usr/bin/ld: cannot find -ldmxconfig
 3190     
 3191     This is because xserver creates libdmxconfig.a internally and then links with
 3192     the linker flag -ldmxconfig. However according to automake documentation the
 3193     -lfoo linker flags should only be used for external dependencies and all
 3194     internal libraries should be linked with the libtool archive file (.la) or
 3195     the static archive (.a) when the former is not available.
 3196     
 3197     GNU libtool is far more permissive and happens to silently obscure this issue
 3198     while slibtool fails because it instead sees '-L./.libs -ldmxconfig'.
 3199 
 3200 commit 2f53d1cf7304574a516f6868822307648bc35333
 3201 Author: Povilas Kanapickas <povilas@radix.lt>
 3202 Date:   Wed Apr 7 18:22:05 2021 +0300
 3203 
 3204     config: Fix platform busid parsing when there is no ID_PATH prop
 3205     
 3206     On at least Lenovo Thinkpad E585 udev does not have ID_PATH property for
 3207     the drm node (see
 3208     https://gitlab.freedesktop.org/xorg/xserver/-/issues/993). While this is
 3209     likely udev bug, this causes the device to be not recognized as
 3210     attribs->busid is NULL, which causes platform_find_pci_info to be not
 3211     called and corresponding xf86_platform_devices[i]->pdev to be NULL.
 3212     
 3213     At this moment pdev being NULL will cause a crash, but this is a
 3214     different bug.
 3215     
 3216     Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/993
 3217     Fixes: 0816e8fc linux: Make platform device probe less fragile
 3218     Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
 3219     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3220 
 3221 commit d4b38e111946b934d0f8438dc295dd9f7316318c
 3222 Author: Olivier Certner <olce.freedesktop@certner.fr>
 3223 Date:   Tue Feb 9 10:49:00 2021 +0100
 3224 
 3225     os: Properly report failure to link lock file
 3226     
 3227     Stop assuming that a failure to link always means that the file indeed
 3228     exists. In case of other failure (e.g., permissions), the user would get an
 3229     inconsistent "Can't read lock file" message.
 3230     
 3231     Signed-off-by: Olivier Certner <olce.freedesktop@certner.fr>
 3232 
 3233 commit d66b7ec12986efd4f32fcc84cdaacbd04ec98ccb
 3234 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 3235 Date:   Wed Jun 23 15:26:23 2021 +0200
 3236 
 3237     xfree86: Fix out of array bound access to xf86Entities
 3238     
 3239     Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 3240 
 3241 commit 0d93bbfa2cfacbb73741f8bed0e32fa1a656b928
 3242 Author: Povilas Kanapickas <povilas@radix.lt>
 3243 Date:   Fri Mar 26 00:51:02 2021 +0200
 3244 
 3245     xfree86: Fix potentially NULL reference to platform device's PCI device
 3246     
 3247     xf86_platform_devices[i].pdev may be NULL in cases we fail to parse the
 3248     busid in config_udev_odev_setup_attribs() (see also [1], [2]) such as
 3249     when udev does not give use ID_PATH. This in turn leads to
 3250     platform_find_pci_info() being not called and pdev being NULL.
 3251     
 3252     [1]: https://gitlab.freedesktop.org/xorg/xserver/-/issues/993
 3253     [2]: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1076
 3254     
 3255     Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
 3256     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3257 
 3258 commit 303763941f9941e2e215a3c978b72de495478033
 3259 Author: Povilas Kanapickas <povilas@radix.lt>
 3260 Date:   Fri Mar 26 00:51:01 2021 +0200
 3261 
 3262     xfree86: Consistently check for reference to primaryBus pci_device
 3263     
 3264     This is the only place where we don't check whether
 3265     primaryBus.id.plat->pdev is not NULL before accessing its members.
 3266     
 3267     It may be NULL in cases we fail to parse the busid in
 3268     config_udev_odev_setup_attribs() (see also [1], [2]) such as when udev
 3269     does not give use ID_PATH. This in turn leads to
 3270     platform_find_pci_info() being not called and pdev being NULL in one of
 3271     the items within the xf86_platform_devices array. For this to cause a
 3272     crash we only need it to become the primaryBus device.
 3273     
 3274     [1]: https://gitlab.freedesktop.org/xorg/xserver/-/issues/993
 3275     [2]: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1076
 3276     
 3277     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3278 
 3279 commit b9722d39cd619ac55c2cfbb5644eabb84ff57f1b
 3280 Author: Povilas Kanapickas <povilas@radix.lt>
 3281 Date:   Thu Jun 17 18:00:50 2021 +0300
 3282 
 3283     configure.ac: Switch project version to 20.x.y style
 3284     
 3285     Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
 3286     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3287 
 3288 commit ef89b6648e2a806237a6d2fa598e1b9c83f128b4
 3289 Author: Zoltán Böszörményi <zboszor@pr.hu>
 3290 Date:   Mon Jun 21 12:12:41 2021 +0200
 3291 
 3292     xfree86: Fix NULL pointer dereference crash
 3293     
 3294     screenp->displays[count] (passed to configDisplay() in
 3295     configScreen()) is NULL if there is no Virtual setting
 3296     in the configuration.
 3297     
 3298     Fixes: f8a6be04d0c7e6a99824ff888ad6c010960c5c21 ("xfree86: Change
 3299     displays array to pointers array to fix invalid pointer issues
 3300     after table reallocation")
 3301     
 3302     Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
 3303 
 3304 commit aad61e8e03311eb8bae4f7db59e65634733eadc2
 3305 Author: Olivier Fourdan <ofourdan@redhat.com>
 3306 Date:   Fri Jun 18 14:52:55 2021 +0200
 3307 
 3308     glx: Fix use after free in MakeCurrent
 3309     
 3310     The fix from commit c468d34c7 - "glx: Set ContextTag for all contexts"
 3311     is actually incomplete, it correctly sets the context tag for direct
 3312     contexts as well, but would fail to mark the context's currentClient.
 3313     
 3314     As a result, when the context is destroyed, it would be freed
 3315     immediately rather than being just scheduled for deletion, even though
 3316     it is still current for some client. leading to a use-after-free.
 3317     
 3318     Make sure to also set the context's currentClient for direct contexts as
 3319     well, not just indirect ones.
 3320     
 3321     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3322     Fixes: c468d34c7 - "glx: Set ContextTag for all contexts"
 3323     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1186
 3324     Reviewed-by: Adam Jackson <ajax@redhat.com>
 3325 
 3326 commit 021b3c2f778e718338f232b94880fc3ae9092085
 3327 Author: Povilas Kanapickas <povilas@radix.lt>
 3328 Date:   Tue Jun 15 12:40:47 2021 +0300
 3329 
 3330     configure.ac: Bump inputproto dep to 2.3.99.1
 3331     
 3332     This should have been part of 6cbcbc81525b131b5b94409ea870af663d5c28bb.
 3333     
 3334     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3335 
 3336 commit 05b3c681ea2f478c0cb941c2f8279919cf78de6d
 3337 Author: Daniel Strnad <strnadda@gmail.com>
 3338 Date:   Tue May 19 15:52:35 2020 +0200
 3339 
 3340     hw/xfree86: Propagate physical dimensions from DRM connector
 3341     
 3342     Physical dimmension of display can be obtained not just by configuration or
 3343     DDC, but also directly from kernel via drmModeGetConnector(). Until now
 3344     xserver silently discarded these values even when no configuration nor EDID
 3345     were present and fallbacked to default DPI.
 3346 
 3347 commit f8a6be04d0c7e6a99824ff888ad6c010960c5c21
 3348 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 3349 Date:   Tue Jun 8 20:02:21 2021 +0200
 3350 
 3351     xfree86: Change displays array to pointers array to fix invalid pointer issues after table reallocation
 3352     
 3353     There are rare cases when xf86SetDepthBpp is resizing displays array in confScreen.
 3354     As that array is shared between set of ScrnInfoRec's then realloc might invalidate chached DispPtr display values in
 3355     otheres ScrnInfoRec objects.
 3356     
 3357     If we will change displays array as an array of pointers to DispRec then cached DispRec pointers in ScrnInfoRec
 3358     won't be invalid after reallocation of displays array.
 3359     
 3360     Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 3361 
 3362 commit 1a1bd5cf7a1a3364afb625f020e1c013fbabfbb6
 3363 Author: Povilas Kanapickas <povilas@radix.lt>
 3364 Date:   Fri Apr 16 16:15:35 2021 +0300
 3365 
 3366     modesetting: Add a limit on async page flip error log frequency
 3367     
 3368     In certain circumstances we will have a lot of flip errors without a
 3369     reasonable way to prevent them. In such case we reduce the number of
 3370     logged messages to at least not fill the error logs.
 3371     
 3372     The details are as follows:
 3373     
 3374     At least on i915 hardware support for async page flip support depends on
 3375     the used modifiers which themselves can change dynamically for a screen.
 3376     This results in the following problems:
 3377     
 3378     - We can't know about whether a particular CRTC will be able to do an
 3379     async flip without hardcoding the same logic as the kernel as there's no
 3380     interface to query this information.
 3381     
 3382     - There is no way to give this information to an application, because
 3383     the protocol of the present extension does not specify anything about
 3384     changing of the capabilities on runtime or the need to re-query them.
 3385     
 3386     Even if the above was solved, the only benefit would be avoiding a
 3387     roundtrip to the kernel and reduced amount of error logs. The former
 3388     does not seem to be a good enough benefit compared to the amount of work
 3389     that would need to be done. The latter is solved in this commit.
 3390     
 3391     Reviewed-by: Eero Tamminen <eero.t.tamminen@intel.com>
 3392     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3393 
 3394 commit 9992245c5f7821de1fbd866f43f0afe55080ed67
 3395 Author: Povilas Kanapickas <povilas@radix.lt>
 3396 Date:   Fri Apr 16 16:15:34 2021 +0300
 3397 
 3398     modesetting: Extract flip failure logging to a single place
 3399     
 3400     Reviewed-by: Eero Tamminen <eero.t.tamminen@intel.com>
 3401     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3402 
 3403 commit 9adb13e296baead53112a268ddfd291195742c71
 3404 Author: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
 3405 Date:   Tue Jun 8 14:52:17 2021 +0200
 3406 
 3407     glamor: Avoid using GL_QUADS on V3D
 3408     
 3409     Like in 0e3f1252dacdc3194 ("glamor: Avoid using GL_QUADS on VC4")
 3410     this will avoid mesa to fallback doing conversion for QUADS primitives.
 3411     
 3412     Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
 3413     Reviewed-by: Emma Anholt <emma@anholt.net>
 3414 
 3415 commit 104c7c50485238a1e8c2090dc96126e9624ef870
 3416 Author: Michel Dänzer <mdaenzer@redhat.com>
 3417 Date:   Tue May 18 18:02:59 2021 +0200
 3418 
 3419     xwayland/present: Move wl_buffer check into xwl_glamor_check_flip
 3420     
 3421     Keeps the glamor specific code together more.
 3422     
 3423     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 3424 
 3425 commit 3641c24bd012d032ec289cde312a9a5a3ba8c3bf
 3426 Author: Michel Dänzer <mdaenzer@redhat.com>
 3427 Date:   Tue May 18 17:56:50 2021 +0200
 3428 
 3429     xwayland/eglstream: Handle xwl_pixmap_get returning NULL
 3430     
 3431     In xwl_glamor_eglstream_get_wl_buffer_for_pixmap. This can likely be hit
 3432     now with an SHM pixmap via the Present flip path. There might be other
 3433     corner cases.
 3434     
 3435     Fixes: f3eb1684fa50 "xwayland: enable MIT-SHM shared pixmaps"
 3436     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 3437 
 3438 commit d163e0a1d5ec54cc726d45a239a0777d0a84d610
 3439 Author: Michel Dänzer <mdaenzer@redhat.com>
 3440 Date:   Fri Jun 11 18:25:01 2021 +0200
 3441 
 3442     ci: Fix UPSTREAM_REPO -> FDO_UPSTREAM_REPO
 3443     
 3444     The latter is what ci-templates expect.
 3445     
 3446     Fixes: ab73c16930d6 "ci: Update to the latest templates"
 3447     Reviewed-by: Simon Ser <contact@emersion.fr>
 3448 
 3449 commit 7e7c147105ac704a7b33bdee0f85dc9ccdd8f747
 3450 Author: Lukasz Spintzyk <lukasz.spintzyk@gmail.com>
 3451 Date:   Mon Jun 7 09:30:46 2021 +0200
 3452 
 3453     modesetting: Disable reverse prime offload mode for displays running on evdi,udl
 3454     
 3455     This mode for displays running on evdi/udl as side effect of failed glamor_egl_init
 3456     reverse_prime_offload_mode was initialized to FALSE
 3457     
 3458     After Mesa upgrade to 21.0.0 GL_RENDERER is not llvmpipe that results in successful glamor_egl_init
 3459     and reverse_prime_offload_mode enabled.
 3460     
 3461     This commit is explicitly disabling reverse_prime_offload_mode for evdi and udl drivers
 3462     
 3463     Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 3464 
 3465 commit c468d34c7208c9041f9c077b54a00ae9cccad6a3
 3466 Author: Olivier Fourdan <ofourdan@redhat.com>
 3467 Date:   Thu Jun 3 17:51:01 2021 +0200
 3468 
 3469     glx: Set ContextTag for all contexts
 3470     
 3471     Currently, xorgGlxMakeCurrent() would set the context tag only for
 3472     indirect GLX contexts.
 3473     
 3474     However, several other places expect to find a context for the tag or
 3475     they would raise a GLXBadContextTag error, such as WaitGL() or WaitX().
 3476     
 3477     Set the context tag for direct contexts as well, to avoid raising an
 3478     error and possibly killing the client.
 3479     
 3480     Thanks to Erik Kurzinger <ekurzinger@nvidia.com> for spotting the issue.
 3481     
 3482     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3483     Reviewed-by: Adam Jackson <ajax@redhat.com>
 3484 
 3485 commit 6b47321bc6138bcd737b36e038aba904d56f1cf6
 3486 Author: Olivier Fourdan <ofourdan@redhat.com>
 3487 Date:   Wed Apr 28 13:33:29 2021 +0200
 3488 
 3489     dix: Add optional terminate delay
 3490     
 3491     When the command line option "-terminate" is used, it could be
 3492     interesting to give it an optional grace period to let the Xserver
 3493     running for a little longer in case a new connection occurs.
 3494     
 3495     This adds an optional parameter to the "-terminate" command line option
 3496     for this purpose.
 3497     
 3498     v2: Use a delay in seconds instead of milliseconds
 3499         (Martin Peres <martin.peres@mupuf.org>)
 3500     v3: Clarify man page entry, ensure terminateDelay is always >= 0,
 3501         simplify TimerFree(). (Peter Hutterer <peter.hutterer@who-t.net>)
 3502     
 3503     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3504     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 3505 
 3506 commit e167299f6050d85778e62ed2a1e544ceef6452fc
 3507 Author: Olivier Fourdan <ofourdan@redhat.com>
 3508 Date:   Fri Feb 19 12:03:39 2021 +0100
 3509 
 3510     xfixes: Add ClientDisconnectMode
 3511     
 3512     With Wayland compositors now being able to start Xwayland on demand, the
 3513     next logical step is to be able to stop Xwayland when there is no more
 3514     need for it.
 3515     
 3516     The Xserver itself is capable of terminating itself once all X11 clients
 3517     are gone, yet in a typical full session, there are a number of X11
 3518     clients running continuously (e.g. the Xsettings daemon, IBus, etc.).
 3519     
 3520     Those always-running clients will prevent the Xserver from terminating,
 3521     because the actual number of X11 clients will never drop to 0. Worse,
 3522     the X11 window manager of a Wayland compositor also counts as an X11
 3523     client, hence also preventing Xwayland from stopping.
 3524     
 3525     Some compositors such as mutter use the XRes extension to query the X11
 3526     clients connected, match their PID with the actual executable name and
 3527     compare those with a list of executables that can be ignored when
 3528     deciding to kill the Xserver.
 3529     
 3530     But that's not just clumsy, it is also racy, because a new X11 client
 3531     might initiate a connection the X11 server right when the compositor is
 3532     about to kill it.
 3533     
 3534     To solve this issue directly at the Xserver level, this add new entries
 3535     to the XFixes extension to let the X11 clients themselves specify the
 3536     disconnect mode they expect.
 3537     
 3538     Typically, those X11 daemon clients would specify the disconnect mode
 3539     XFixesClientDisconnectFlagTerminate to let the Xserver know that they
 3540     should not be accounted for when checking the remaining clients prior
 3541     to terminate.
 3542     
 3543     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3544     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 3545 
 3546 commit b7a85e44da91d1663d5b4eabac06327c92a80f91
 3547 Author: Erik Kurzinger <ekurzinger@nvidia.com>
 3548 Date:   Thu Dec 10 14:24:32 2020 -0800
 3549 
 3550     glx: don't create implicit GLXWindow if one already exists
 3551     
 3552     If a GLXMakeCurrent request specifies an X window as its drawable,
 3553     __glXGetDrawable will implicitly create a GLXWindow for it. However,
 3554     the client may have already explicitly created a GLXWindow for that X
 3555     window. If that happens, two __glXDrawableRes resources will be added
 3556     to the window.
 3557     
 3558     If the explicitly-created GLXWindow is later destroyed by the client,
 3559     DrawableGone will call FreeResourceByType on the X window, but this
 3560     will actually free the resource for the implicitly-created GLXWindow,
 3561     since that one would be at the head of the list.
 3562     
 3563     Then if the X window is destroyed after that, the resource for the
 3564     explicitly-created GLXWindow will be freed. But that GLXWindow was
 3565     already destroyed above. This crashes the server when it tries to call
 3566     the destroyed GLXWindow's destructor. It also means the
 3567     implicitly-created GLXWindow would have been leaked since the
 3568     FreeResourceByType call mentioned above skips calling the destructor.
 3569     
 3570     To fix this, if __glXGetDrawable is given an X window, it should check
 3571     if there is already a GLXWindow associated with it, and only create an
 3572     implicit one if there is not.
 3573     
 3574     Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
 3575     Reviewed-by: Adam Jackson <ajax@redhat.com>
 3576 
 3577 commit 8274dd664335cd72739a1107f174e7a974a9ea24
 3578 Author: Jan Beich <jbeich@FreeBSD.org>
 3579 Date:   Sun May 30 19:49:43 2021 +0000
 3580 
 3581     meson: provide fallback for *proto dependencies
 3582     
 3583     Meson has a built-in facility to use bundled versions of dependencies
 3584     if system packages are too old. Enable for xorgproto after 8e504d8b36eb:
 3585     
 3586     Run-time dependency xproto found: YES 7.0.33
 3587     Run-time dependency randrproto found: YES 1.6.0
 3588     Run-time dependency renderproto found: YES 0.11.1
 3589     Run-time dependency xextproto found: YES 7.3.0
 3590     Dependency inputproto found: NO found 2.3.2 but need: '>= 2.3.99.1'
 3591     Found CMake: /usr/local/bin/cmake (3.20.2)
 3592     Run-time dependency inputproto found: NO (tried pkgconfig and cmake)
 3593     Looking for a fallback subproject for the dependency inputproto
 3594     
 3595     meson.build:73:0: ERROR: Neither a subproject directory nor a xorgproto.wrap file was found.
 3596 
 3597 commit 34a58d7714025bc1043bf5282358406eb10e4b8e
 3598 Author: Olivier Fourdan <ofourdan@redhat.com>
 3599 Date:   Thu May 20 16:46:33 2021 +0200
 3600 
 3601     xwayland/eglstream: Log when GL_OES_EGL_image is missing
 3602     
 3603     That will dramatically affect performance, might as well log when we
 3604     cannot use GL_OES_EGL_image with the NVIDIA closed-source driver.
 3605     
 3606     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3607     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3608 
 3609 commit fae58e9b03696a3890f9c876306c68ffa6f9ff30
 3610 Author: Olivier Fourdan <ofourdan@redhat.com>
 3611 Date:   Mon May 17 18:20:57 2021 +0200
 3612 
 3613     xwayland/eglstream: Use "nvidia" for GLVND
 3614     
 3615     If the EGLStream backend is able to use hardware acceleration with the
 3616     NVIDIA closed source driver, we should use the "nvidia" GLX
 3617     implementation instead of the one from Mesa to take advantage of the
 3618     NVIDIA hardware accelerated rendering.
 3619     
 3620     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3621     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3622 
 3623 commit 24fc8aea1e4bbaba780f1a316fba797a0198f603
 3624 Author: Olivier Fourdan <ofourdan@redhat.com>
 3625 Date:   Thu May 20 12:11:42 2021 +0200
 3626 
 3627     xwayland: Add preferred GLVND vendor to xwl_screen
 3628     
 3629     If Xwayland's EGLstream backend supports hardware acceleration with the
 3630     NVIDIA closed-source driver, the GLX library also needs to be one
 3631     shipped by NVIDIA, that's what GLVND is for.
 3632     
 3633     Add a new member to the xwl_screen that the backend can optionally set
 3634     to the preferred GLVND vendor to use.
 3635     
 3636     If not set, "mesa" is assumed.
 3637     
 3638     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3639     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3640 
 3641 commit 2de5ded3c6d73c1672d2cb14d603cb23fcd477e5
 3642 Author: Niveditha Rau <niveditha.rau@oracle.com>
 3643 Date:   Tue May 11 15:08:41 2021 -0700
 3644 
 3645     glx: Check for byte-swapping in SetReplyHeader
 3646     
 3647     Check for the need to byte-swap when attempting to display
 3648     GL apps between a big-endian server and little-endian client
 3649     or vice versa.
 3650     
 3651     Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1127
 3652 
 3653 commit bcb1de600a7656e4ee6434a8d2e2772ca9fd0473
 3654 Author: Adam Jackson <ajax@redhat.com>
 3655 Date:   Thu Apr 22 11:47:29 2021 -0400
 3656 
 3657     glx: Fix error return code in GLXGetDrawableAttributes
 3658     
 3659     This should only ever throw GLXBadDrawable, says the protocol spec.
 3660 
 3661 commit eb6f8daca5dc15af321d0bcc54cd6cb8b6779257
 3662 Author: Povilas Kanapickas <povilas@radix.lt>
 3663 Date:   Sun May 30 13:26:48 2021 +0300
 3664 
 3665     Xi: Work around broken libxcb that doesn't ignore unknown device classes
 3666     
 3667     libxcb 14.1 and older are not forwards-compatible with new device
 3668     classes as it does not properly ignore unknown device classes. Since
 3669     breaking libxcb would break quite a lot of applications, we instead
 3670     report Gesture device class only if the client advertised support for XI
 3671     2.4.
 3672     
 3673     Clients may still not work in cases when a client advertises XI 2.4
 3674     support and then a completely separate module within the client uses
 3675     broken libxcb to call XIQueryDevice.
 3676     
 3677     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3678 
 3679 commit 7e692633fb9ab8e1ed2a88c3abb4fe04144c0a80
 3680 Author: Povilas Kanapickas <povilas@radix.lt>
 3681 Date:   Sun May 30 13:26:47 2021 +0300
 3682 
 3683     Xi: Implement gesture support for XIQueryDevice
 3684 
 3685 commit 0886254f96f40e59193ccbb0e3acbd5ae92dbaa3
 3686 Author: Povilas Kanapickas <povilas@radix.lt>
 3687 Date:   Sun May 30 13:26:46 2021 +0300
 3688 
 3689     xfree86: Bump input minor ABI due to addition touchpad gestures
 3690     
 3691     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3692 
 3693 commit 1cdc3b5d146818993c5a9436d17e1d0888054c38
 3694 Author: Povilas Kanapickas <povilas@radix.lt>
 3695 Date:   Sun May 30 13:26:45 2021 +0300
 3696 
 3697     xfree86: Implement gesture support for test input driver
 3698 
 3699 commit dccc0275f4f3740cc625fb60ab1d014d6ec10709
 3700 Author: Povilas Kanapickas <povilas@radix.lt>
 3701 Date:   Sun May 30 13:26:44 2021 +0300
 3702 
 3703     Bump XI protocol version to 2.4
 3704 
 3705 commit 75feb1366809bfb6d50734c10ab11258783a2e9d
 3706 Author: Povilas Kanapickas <povilas@radix.lt>
 3707 Date:   Sun May 30 13:26:43 2021 +0300
 3708 
 3709     Xi: Include gestures among events that may freeze device
 3710 
 3711 commit 5163fc8bc28ce8bc2703cddcd9f2775ebc311766
 3712 Author: Povilas Kanapickas <povilas@radix.lt>
 3713 Date:   Sun May 30 13:26:42 2021 +0300
 3714 
 3715     Implement gesture processing logic
 3716 
 3717 commit d3c52df16105de5ac37e196a49b173e426caf417
 3718 Author: Povilas Kanapickas <povilas@radix.lt>
 3719 Date:   Sun May 30 13:26:41 2021 +0300
 3720 
 3721     hw/xfree86: Implement public APIs to submit gesture events
 3722 
 3723 commit 100a2ad6da4ba90f8d489c7a2ed3f3f0ac879a6f
 3724 Author: Povilas Kanapickas <povilas@radix.lt>
 3725 Date:   Sun May 30 13:26:40 2021 +0300
 3726 
 3727     dix: Implement gesture event submission code path
 3728 
 3729 commit 7656a9c8dddbc57adfd4fd05f8e26b1845ac8738
 3730 Author: Povilas Kanapickas <povilas@radix.lt>
 3731 Date:   Sun May 30 13:26:39 2021 +0300
 3732 
 3733     dix: Implement internal gesture state handling
 3734 
 3735 commit 0bf4123fd3bc945d150884e6ea38bd2b81c0994b
 3736 Author: Povilas Kanapickas <povilas@radix.lt>
 3737 Date:   Sun May 30 13:26:38 2021 +0300
 3738 
 3739     dix: Implement gesture event fixups before delivery
 3740 
 3741 commit 227f601de31aabf6aaa897477e42e6b7f8f7c963
 3742 Author: Povilas Kanapickas <povilas@radix.lt>
 3743 Date:   Sun May 30 13:26:37 2021 +0300
 3744 
 3745     xi: Implement conversions from internal to Xi2 gesture event structs
 3746 
 3747 commit f3462178caf09a8777b8671eb03949b75c8ee07a
 3748 Author: Povilas Kanapickas <povilas@radix.lt>
 3749 Date:   Sun May 30 13:26:36 2021 +0300
 3750 
 3751     test/xi2: Verify that XI_GestureSwipeEnd is ignored when outside mask
 3752 
 3753 commit 407a2234b32d9cb3fed2cc7e8069bb41b98e143f
 3754 Author: Povilas Kanapickas <povilas@radix.lt>
 3755 Date:   Sun May 30 13:26:35 2021 +0300
 3756 
 3757     test/xi2: Update tests for gesture event types
 3758 
 3759 commit f83f7dbb1c1be406b82da9bca12be3c43d6bfeee
 3760 Author: Povilas Kanapickas <povilas@radix.lt>
 3761 Date:   Sun May 30 13:26:34 2021 +0300
 3762 
 3763     xi: Bump max supported XI2 event type
 3764 
 3765 commit 81909546397eb180ed8983bdb80f5673dbae71ac
 3766 Author: Povilas Kanapickas <povilas@radix.lt>
 3767 Date:   Sun May 30 13:26:33 2021 +0300
 3768 
 3769     xi: Implement selection logic for gesture event types
 3770 
 3771 commit 080bac39c844bd16b7e1493797c6e7644badf0ab
 3772 Author: Povilas Kanapickas <povilas@radix.lt>
 3773 Date:   Sun May 30 13:26:32 2021 +0300
 3774 
 3775     xi: Implement grab support for new gesture event types
 3776 
 3777 commit b544a1fdb8fa7e7efc7dde66089e901d957061d9
 3778 Author: Povilas Kanapickas <povilas@radix.lt>
 3779 Date:   Sun May 30 13:26:31 2021 +0300
 3780 
 3781     xi: Implement internal gesture event struct
 3782 
 3783 commit 22fa31ed561ed1e78bf3651f28e11882b1eac51f
 3784 Author: Povilas Kanapickas <povilas@radix.lt>
 3785 Date:   Sun May 30 13:26:30 2021 +0300
 3786 
 3787     dix: Add new internal event enums for gesture events
 3788 
 3789 commit 8e504d8b36eb8f23bf8cfa46143d046cc6b8ea51
 3790 Author: Povilas Kanapickas <povilas@radix.lt>
 3791 Date:   Sun May 30 13:26:29 2021 +0300
 3792 
 3793     meson: Depend on inputproto 2.3.99.1
 3794     
 3795     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3796 
 3797 commit 2acde60147797393e0ee9428cff0f74cdc0a9227
 3798 Author: Povilas Kanapickas <povilas@radix.lt>
 3799 Date:   Sun May 30 13:26:28 2021 +0300
 3800 
 3801     .gitlab-ci: Install xorgproto 2021.4.99.2 from git
 3802     
 3803     This is required for the support of upcoming XI 2.4 protocol.
 3804     
 3805     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 3806 
 3807 commit 236d1775509404b0dcf44873422dd8652b1e9588
 3808 Author: Claes Nästén <pekdon@gmail.com>
 3809 Date:   Fri May 14 13:57:10 2021 +0000
 3810 
 3811     os: include unistd.h when HAVE_PSTACK is defined
 3812     
 3813     On Solaris when HAVE_PSTACK is defined unistd.h needs to be included to
 3814     avoid implicit declarations of pipe, read, execle etc.
 3815 
 3816 commit 7515c23a416825f0db51f9b445279b12d5918ebf
 3817 Author: Erik Kurzinger <ekurzinger@nvidia.com>
 3818 Date:   Tue May 11 17:00:21 2021 -0400
 3819 
 3820     xwayland/eglstream: flush stream after eglSwapBuffers
 3821     
 3822     When eglSwapBuffers inserts a new frame into a window's stream, there may be a
 3823     delay before the state of the consumer end of the stream is updated to reflect
 3824     this. If the subsequent wl_surface_attach, wl_surface_damage, wl_surface_commit
 3825     calls are received by the compositor before then, it will (typically) re-use
 3826     the previous frame acquired from the stream instead of the latest one.
 3827     
 3828     This can leave the window displaying out-of-date contents, which might never be
 3829     updated thereafter.
 3830     
 3831     To fix this, after calling eglSwapBuffers, xwl_glamor_eglstream_post_damage
 3832     should call eglStreamFlushNV. This call will block until it can be guaranteed
 3833     that the state of the consumer end of the stream has been updated to reflect
 3834     that a new frame is available.
 3835     
 3836     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1171
 3837     
 3838     Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
 3839 
 3840 commit f3eb1684fa5008ad7c881f798a5efb7441b23035
 3841 Author: Simon Ser <contact@emersion.fr>
 3842 Date:   Mon Apr 19 22:49:56 2021 +0200
 3843 
 3844     xwayland: enable MIT-SHM shared pixmaps
 3845     
 3846     Allow X11 clients to create shared pixmaps via the MIT-SHM
 3847     extension under Xwayland. Tested with a wlroots patch [1].
 3848     
 3849     Also add a few assertions to make sure we have wl_buffers where we
 3850     need them.
 3851     
 3852     [1]: https://github.com/swaywm/wlroots/pull/2875
 3853     
 3854     Signed-off-by: Simon Ser <contact@emersion.fr>
 3855     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
 3856 
 3857 commit 3d33d885fcd1215a74c1819278cf6f9557c9860b
 3858 Author: Erik Kurzinger <ekurzinger@nvidia.com>
 3859 Date:   Fri May 14 08:26:49 2021 -0400
 3860 
 3861     xwayland/eglstream: allow commits to dma-buf backed pixmaps
 3862     
 3863     As of commit 098e0f52 xwl_glamor_eglstream_allow_commits will not allow commits
 3864     if the xwl_pixmap does not have an EGLSurface. This is valid for pixmaps backed
 3865     by an EGLStream, however pixmaps backed by a dma-buf for OpenGL or Vulkan
 3866     rendering will never have an EGLSurface.  Unlike EGLStream backed pixmaps,
 3867     though, glamor will render directly to the buffer that Xwayland passes to the
 3868     compositor. Hence, they don't require the intermediate copy in
 3869     xwl_glamor_eglstream_post_damage that EGLStream backed pixmaps do, so there is
 3870     no need for an EGLSurface.
 3871     
 3872     Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
 3873     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 3874     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3875 
 3876 commit 012350e3db47fef0404346f55968032e62004fcf
 3877 Author: Olivier Fourdan <ofourdan@redhat.com>
 3878 Date:   Fri Apr 30 16:23:10 2021 +0200
 3879 
 3880     xwayland/eglstream: Set ALU to GXCopy for blitting
 3881     
 3882     The EGLstream backend's post damage function uses a shader and
 3883     glDrawArrays() to copy the data from the glamor's pixmap texture prior
 3884     to do the eglSwapBuffers().
 3885     
 3886     However, glDrawArrays() can be affected by the GL state, and therefore
 3887     not reliably produce the expected copy, causing the content of the
 3888     buffer to be corrupted.
 3889     
 3890     Make sure to set the ALU to GXCopy prior to call glDrawArrays() to get
 3891     the expected result.
 3892     
 3893     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3894     Suggested-by: Michel Dänzer <mdaenzer@redhat.com>
 3895 
 3896 commit d85bfa6ab7495281516f3a4b05dc1ff0b2c4bf91
 3897 Author: Olivier Fourdan <ofourdan@redhat.com>
 3898 Date:   Tue May 4 10:56:38 2021 +0200
 3899 
 3900     xwayland/eglstream: Do not always increment pixmap refcnt on commit
 3901     
 3902     Currently, the EGLstream backend would increment the pixmap refcount for
 3903     each commit, and decrease that refcount on the wl_buffer release
 3904     callback.
 3905     
 3906     But that's relying on the compositor sending us a release callback for
 3907     each commit, otherwise the pixmap refcount will keep increasing and the
 3908     pixmap will be leaked.
 3909     
 3910     So instead, increment the refcount on the pixmap only when we have not
 3911     received a release notification for the wl_buffer, to avoid increasing
 3912     the pixmap refcount more than once without a corresponding release
 3913     event.
 3914     
 3915     This way, if the pixmap is still in use when released on the X11 side,
 3916     the EGL stream will be kept until the compositor releases it.
 3917     
 3918     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3919     Suggested-by: Michel Dänzer <mdaenzer@redhat.com>
 3920     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3921 
 3922 commit b583395cd38ad101c7541bd8b0e91143ced44703
 3923 Author: Olivier Fourdan <ofourdan@redhat.com>
 3924 Date:   Fri Apr 30 09:02:29 2021 +0200
 3925 
 3926     xwayland/eglstream: Check eglSwapBuffers()
 3927     
 3928     EGLstream's post_damage() would unconditionally return success
 3929     regardless of the actual status of the eglSwapBuffers().
 3930     
 3931     Yet, if eglSwapBuffers() fails, we should not post the corresponding
 3932     damage as they wouldn't match the actual content of the buffer.
 3933     
 3934     Use the eglSwapBuffers() return value as the return value for
 3935     post_damage() and do not take a refrence on the pixmap if it fails.
 3936     
 3937     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3938     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3939 
 3940 commit a45799971083c47082d085d3732a5b12692cf75b
 3941 Author: Olivier Fourdan <ofourdan@redhat.com>
 3942 Date:   Mon Apr 19 14:52:38 2021 +0200
 3943 
 3944     xwayland/eglstream: Fix calloc/malloc
 3945     
 3946     Use calloc() instead of malloc() like the rest of the code.
 3947     
 3948     Also fix the arguments of calloc() calls to match the definition which
 3949     is calloc(size_t nmemb, size_t size).
 3950     
 3951     This is a cleanup patch, no functional change.
 3952     
 3953     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3954     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3955 
 3956 commit 098e0f52c088c6eb52c7e54c5a11cefabd480908
 3957 Author: Olivier Fourdan <ofourdan@redhat.com>
 3958 Date:   Mon Apr 19 18:11:19 2021 +0200
 3959 
 3960     xwayland/eglstream: Do not commit without surface
 3961     
 3962     The EGL surface for the xwl_pixmap is created once the stream is ready
 3963     and valid.
 3964     
 3965     If the pixmap's EGL surface fails, for whatever reason, the xwl_pixmap
 3966     will be unusable and will end up as an invalid wl_buffer.
 3967     
 3968     Make sure we do not allow commits in that case and recreate the
 3969     xwl_pixmap/stream.
 3970     
 3971     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3972     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3973     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156
 3974 
 3975 commit bee2ebb29f0999862ab39af26c673c00af40b082
 3976 Author: Olivier Fourdan <ofourdan@redhat.com>
 3977 Date:   Tue Apr 27 14:17:19 2021 +0200
 3978 
 3979     xwayland/eglstream: Drop the list of pending streams
 3980     
 3981     Now that the pending stream is associated with the xwl_pixmap for
 3982     EGLStream and the xwl_pixmap itself is associated to the pixmap, we have
 3983     a reliable way to get to those data from any pending stream.
 3984     
 3985     As a result, the list of pending streams that we keep in the EGLStream
 3986     global structure becomes useless.
 3987     
 3988     So we can drop the pending stream's xwl_pixmap and also the list of
 3989     pending streams altogether, and save us a walk though that list for each
 3990     callback.
 3991     
 3992     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 3993     Suggested-by: Michel Dänzer <mdaenzer@redhat.com>
 3994     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 3995 
 3996 commit e19bf86c17ef9c802fea24410cc6b1f51a19ce7f
 3997 Author: Olivier Fourdan <ofourdan@redhat.com>
 3998 Date:   Wed Apr 14 17:31:08 2021 +0200
 3999 
 4000     xwayland/eglstream: Keep a reference to the pixmap
 4001     
 4002     Commit affc47452 - "xwayland: Drop the separate refcount for the
 4003     xwl_pixmap" removed the separate reference counter for the xwl_pixmap
 4004     which holds the EGLStream.
 4005     
 4006     While that works fine for the common case, if the window's pixmap is
 4007     changed before the stream is ready, the older pixmap will be destroyed
 4008     and the xwl_pixmap along with it, even if the compositor is still using
 4009     the stream.
 4010     
 4011     The code that was removed with commit affc47452 was taking care of that
 4012     by increasing the separate reference counter for the xwl_pixmap, but it
 4013     no longer the case.
 4014     
 4015     As a result, we may end up with the EGL stream in the wrong state when
 4016     trying to use it, which will cascade down into all sort of issues.
 4017     
 4018     To avoid the problem, increase the reference count on the pixmap when it
 4019     is marked as invalid in EGLStream's SetWindowPixmap().
 4020     
 4021     This way, the xwl_pixmap and the EGLStream are kept until released by
 4022     the compositor, even when the pixmap changes before stream is ready.
 4023     
 4024     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4025     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4026     Fixes: affc47452 xwayland: Drop the separate refcount for the xwl_pixmap
 4027     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156
 4028 
 4029 commit cb61ecc7291cfbed2f76d4437cd7450b8e4dab00
 4030 Author: Olivier Fourdan <ofourdan@redhat.com>
 4031 Date:   Fri Apr 16 10:38:23 2021 +0200
 4032 
 4033     xwayland/eglstream: Dissociate pending stream from window
 4034     
 4035     Previously, we would have pending streams associated with top level X11
 4036     windows, keeping temporary accounting for the pending streams before
 4037     they get fully initialized for the xwl_pixmap which would be associated
 4038     with X11 pixmaps.
 4039     
 4040     If the window content changes before the stream is ready, the
 4041     corresponding pending stream would be marked as invalid and the pending
 4042     stream would be eventually removed once the stream becomes ready.
 4043     
 4044     Since commit affc47452 - "xwayland: Drop the separate refcount for the
 4045     xwl_pixmap", we no longer keep a separate reference counter for the
 4046     xwl_pixmap, but rather tie it to the X11 pixmap lifespan. Yet, the
 4047     pending stream would still be associated with the X11 toplevel window.
 4048     
 4049     Dissociate the pending streams from the X11 toplevel window, to keep it
 4050     tied only to the xwl_pixmap so that we can have:
 4051     
 4052      - pixmap <-> xwl_pixmap
 4053      - xwl_pixmap <-> pending stream
 4054     
 4055     Of course, the pending streams remain temporary and get removed as soon
 4056     as the ready callback is triggered, but the pending streams are not
 4057     linked to the X11 window anymore which can change their content, and
 4058     therefore their X11 pixmap at any time.
 4059     
 4060     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4061     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4062     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156
 4063 
 4064 commit cc596bcfb273eeab82ac3d59867668af8bad2abf
 4065 Author: Olivier Fourdan <ofourdan@redhat.com>
 4066 Date:   Thu Apr 1 08:46:52 2021 +0200
 4067 
 4068     xwayland/eglstream: Add more error checking
 4069     
 4070     eglCreateStreamKHR() can fail and return EGL_NO_STREAM_KHR, in which
 4071     case there is no point in trying to create a buffer from it.
 4072     
 4073     Similarly, eglCreateStreamProducerSurfaceKHR() also fail and return
 4074     EGL_NO_SURFACE, which in turn will be used in eglMakeCurrent() as
 4075     draw/read surface, and therefore would mean no draw/read buffer.
 4076     
 4077     In those cases, log the error, and bail out early. That won't solve the
 4078     issue but will help with investigating the root cause of issues with
 4079     EGLStream backend.
 4080     
 4081     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4082     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4083     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156
 4084 
 4085 commit 823f3254fabd16e5e721da57cd260beac9b8f8bd
 4086 Author: Olivier Fourdan <ofourdan@redhat.com>
 4087 Date:   Thu Apr 15 10:59:36 2021 +0200
 4088 
 4089     xwayland/eglstream: Small refactoring
 4090     
 4091     Some functions are called "callback" whereas they are not longer
 4092     callback functions or "unref" while they no longer deal with a reference
 4093     counter anymore, which is quite confusing. Rename those functions to be
 4094     more explicit.
 4095     
 4096     Also, the pending streams can be destroyed in different places, move the
 4097     common code to separate function to avoid duplicating code and help with
 4098     readability of the code.
 4099     
 4100     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4101     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
 4102 
 4103 commit 85244d2a2081d61a2e4a06e847041f638de01e3f
 4104 Author: Olivier Fourdan <ofourdan@redhat.com>
 4105 Date:   Wed Mar 31 09:49:35 2021 +0200
 4106 
 4107     xwayland/eglstream: Check framebuffer status
 4108     
 4109     The EGLStream backend would sometime generate GL errors trying to draw
 4110     to the framebuffer, which gives an invalid buffer, which in turn would
 4111     generate a Wayland error from the compositor which is fatal to the
 4112     client.
 4113     
 4114     Check the framebuffer status and bail out early if it's not complete,
 4115     to avoid getting into trouble later.
 4116     
 4117     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4118     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4119     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156
 4120 
 4121 commit 252cbad316f43edc08aa5c844789398a58ba270c
 4122 Author: Olivier Fourdan <ofourdan@redhat.com>
 4123 Date:   Wed Mar 31 13:57:45 2021 +0200
 4124 
 4125     xwayland/glamor: Add return status to post_damage
 4126     
 4127     If the glamor backend failed to post damage, the caller should do the
 4128     same to avoid a failure to attach the buffer to the Wayland surface.
 4129     
 4130     Change the API of Xwayland's glamor backend post_damage() to return a
 4131     status so that xwl_window_post_damage() can tell whether the callee
 4132     failed.
 4133     
 4134     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4135     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4136     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156
 4137 
 4138 commit 3b265c59a6456f6e4abfb9e1694237bc56f1776a
 4139 Author: Olivier Fourdan <ofourdan@redhat.com>
 4140 Date:   Tue Mar 30 08:48:25 2021 +0200
 4141 
 4142     glamor: Dump backtrace on GL error
 4143     
 4144     Currrently, when a GL error is triggered, glamor would log the error
 4145     which may not be sufficient to trace it back to the cause of the error.
 4146     
 4147     Also dump the backtrace which may give more information as to where the
 4148     error comes from.
 4149     
 4150     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4151     Reviewed-by: Martin Peres <martin.peres@mupuf.org>
 4152     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4153     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156
 4154 
 4155 commit 25d2f4948f0abd39e099b8ac69b7cb1dab38a10a
 4156 Author: Olivier Fourdan <ofourdan@redhat.com>
 4157 Date:   Mon Mar 29 15:01:15 2021 +0200
 4158 
 4159     xwayland: Check buffer prior to attaching it
 4160     
 4161     If the buffer is NULL, do not even try to attach it, and risk a Wayland
 4162     protocol error which would be fatal to us.
 4163     
 4164     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4165     Reviewed-by: Martin Peres <martin.peres@mupuf.org>
 4166     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4167     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156
 4168 
 4169 commit 4f0889e98306d30a37aba0fadb1fd3790c13205a
 4170 Author: Olivier Fourdan <ofourdan@redhat.com>
 4171 Date:   Mon Mar 29 14:22:56 2021 +0200
 4172 
 4173     xwayland/eglstream: Check buffer creation
 4174     
 4175     EGLStream wl_eglstream_display_create_stream() may fail, yet Xwayland
 4176     would try to attach the buffer which may cause a fatal Wayland protocol
 4177     error raised by the compositor.
 4178     
 4179     Check if the buffer creation worked, and fail gracefully otherwise (like
 4180     wayland-eglsurface does).
 4181     
 4182     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4183     Reviewed-by: Martin Peres <martin.peres@mupuf.org>
 4184     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4185     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1156
 4186 
 4187 commit 4f6fbd5009ae533cf0b3bbe382502254f9276a01
 4188 Author: Erik Kurzinger <ekurzinger@nvidia.com>
 4189 Date:   Tue Apr 27 07:23:44 2021 -0400
 4190 
 4191     xwayland-eglstream: fix X11 rendering to flipping GL / VK window
 4192     
 4193     If a window is being used for direct rendering with OpenGL or Vulkan, and is
 4194     using the flipping path for presentation, it's pixmap will be set to a dma-buf
 4195     backed pixmap created by the client-side GL driver. However, this means that
 4196     xwl_glamor_eglstream_post_damage won't work since it requires that the pixmap
 4197     has an EGLSurface that it can render to, which dma-buf backed pixmaps do not.
 4198     
 4199     In this case, though, xwl_glamor_eglstream_post_damage is not necessary since
 4200     glamor will have rendered directly to the pixmap, so we can simply pass it
 4201     directly to the compositor. There's no need for the intermediate copy we
 4202     normally do in that function.
 4203     
 4204     Therefore, this change adds an early-return case to post_damage for dma-buf
 4205     backed pixmaps, and removes the corresponding asserts from that function and
 4206     allow_commits.
 4207     
 4208     Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
 4209     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 4210     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4211 
 4212 commit a50a0e348542bf32fb4239ee05a485772837f2f3
 4213 Author: qarmin <mikrutrafal54@gmail.com>
 4214 Date:   Tue Apr 28 22:05:02 2020 +0200
 4215 
 4216     glxcmds: Fix possible out of bounds
 4217 
 4218 commit 3ea46f9336693d713ab63f422fffce42f9060a2c
 4219 Author: Mazlan, Hazwan Arif <hazwan.arif.mazlan@intel.com>
 4220 Date:   Thu Jul 30 10:12:27 2020 +0800
 4221 
 4222     dri2: Sync i965_pci_ids.h from mesa iris_pci_ids.h
 4223     
 4224     Copied TGL PCI ID from MESA iris_pci_ids.h
 4225     This update brings in a significant number of new platform ID's
 4226     Sync up until commit f02ae698
 4227     
 4228     Signed-off-by: Mazlan, Hazwan Arif <hazwan.arif.mazlan@intel.com>
 4229 
 4230 commit d3933a24d1abdcb56f45e6076cb84a1110674a8a
 4231 Author: Jon Turney <jon.turney@dronecode.org.uk>
 4232 Date:   Tue Apr 23 17:59:29 2019 +0100
 4233 
 4234     CI: Add an x86 MinGW-w64 cross build
 4235     
 4236     Only cross-build for x86 MinGW-w64, as x64 MinGW-w64 will probably
 4237     require fixing LLP64 issues.
 4238     
 4239     I don't know any source for pre-built cross-dependencies of the X
 4240     server, so build these from git.
 4241     
 4242     Don't build with GLX enabled, so I don't have to deal with
 4243     cross-building mesa and it's dependencies, for the moment.
 4244 
 4245 commit 7e142cb2a848acb6af986fa91d254d4c23963b24
 4246 Author: luporl <luporl@FreeBSD.org>
 4247 Date:   Wed Dec 9 11:11:15 2020 -0300
 4248 
 4249     xserver: fix RGB mask handling
 4250     
 4251     On FreeBSD 13.0-CURRENT for PowerPC64 big-endian (BE), X was
 4252     crashing in some cases. For instance, when twm was started
 4253     and the background was clicked to open its menu, X crashed
 4254     with a segmentation fault, trying to dereference a null pointer
 4255     at CreatePicture().
 4256     
 4257     There were 2 issues with xorg-server handling of RGB masks that
 4258     caused the pointer above to be null and thus the crash:
 4259     - wrong use of ffs() to get the RGB offsets from the masks
 4260     - overflow when shifting a 16-bit integer
 4261     
 4262     This change fixes both issues. They happen when the system is BE
 4263     but has a video adapter using a little-endian (LE) ARGB32
 4264     framebuffer. In order to display the correct colors, this setup
 4265     requires a BE RGBA32 color format to be used by X, by setting
 4266     the RGB masks appropriately, that didn't work properly because of
 4267     the issues above.
 4268 
 4269 commit 5be3b80b8d084ca5721be8791910d5827d1b6014
 4270 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4271 Date:   Fri Sep 18 14:32:01 2020 +0200
 4272 
 4273     modesetting: Remove few common functions from ms namespace
 4274     
 4275     A lot of that code is the same as in xf86-amdgpu and xf86-nouveau drivers. By removing that functions from
 4276     ms namespace we can move that code to common implementation.
 4277     
 4278     Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4279 
 4280 commit c282be503e267afdd050df837d4cf61e0e7287b7
 4281 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4282 Date:   Fri Sep 18 14:31:53 2020 +0200
 4283 
 4284     modesetting: remove unnecessary ms_covering_xf86_crtc dup of ms_covering_randr_crtc
 4285     
 4286     Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4287 
 4288 commit b923364c5ec8251e81b4aa5fd451d9d7bb038009
 4289 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4290 Date:   Fri Sep 18 14:31:47 2020 +0200
 4291 
 4292     modesetting: Find crtc on secondary outputs as fallback instead of returning primary crtc
 4293     
 4294     Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4295 
 4296 commit d2dce22b6775c772282ac2c0e224ef9685ab34fa
 4297 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4298 Date:   Fri Sep 18 14:31:34 2020 +0200
 4299 
 4300     present: fix msc offset calculation in screen mode
 4301     
 4302     Instead of getting the current msc value from the window crtc,
 4303     which not exist take the last saved msc value saved in
 4304     the window_priv struct
 4305     
 4306     Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4307 
 4308 commit 908deb0895f9fe345d70be933d251ea10511d30a
 4309 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4310 Date:   Fri Sep 18 14:31:25 2020 +0200
 4311 
 4312     present: Use crtc's screen present operation for syncing
 4313     
 4314     Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4315 
 4316 commit d03c0de77ba36bb5221d00ac84dcdd6aae0df453
 4317 Author: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4318 Date:   Fri Sep 18 14:29:25 2020 +0200
 4319 
 4320     modesetting: Initialize present extension despite glamor is disabled
 4321     
 4322     Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
 4323 
 4324 commit 7aaf54a1884f71dc363f0b884e57bcb67407a6cd
 4325 Author: Matthieu Herrb <matthieu@herrb.eu>
 4326 Date:   Sun Mar 21 18:38:57 2021 +0100
 4327 
 4328     Fix XChangeFeedbackControl() request underflow
 4329     
 4330     CVE-2021-3472 / ZDI-CAN-1259
 4331     
 4332     This vulnerability was discovered by:
 4333     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 4334     
 4335     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 4336 
 4337 commit 66ce61983db0a067e48143750c4d5557d5638b1c
 4338 Author: Peter Hutterer <peter.hutterer@who-t.net>
 4339 Date:   Thu Mar 18 09:59:17 2021 +1000
 4340 
 4341     xkb: silence a compiler warning
 4342     
 4343     xkb.c: In function ‘ProcXkbSetMap’:
 4344     xkb.c:2747:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
 4345      2747 |     DeviceIntPtr master = GetMaster(dev, MASTER_KEYBOARD);
 4346     
 4347     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
 4348 
 4349 commit f6b8f8c071a575e54645aeb0bd3cb37377b0e4d3
 4350 Author: Peter Hutterer <peter.hutterer@who-t.net>
 4351 Date:   Thu Mar 18 09:44:53 2021 +1000
 4352 
 4353     xkb: don't require a trailing slash for the XKM output dir
 4354     
 4355     Rework the function to use a single snprintf call instead of a mix of
 4356     strcpy/strcats. This now also appends a trailing slash where needed so we
 4357     don't rely on the build system to set this for us.
 4358     
 4359     Also, since /tmp/ is the fallback and we never check if everything succeeded,
 4360     assert if we can't use /tmp/. This will never be triggered anyway, the only
 4361     caller to OutputDirectory() uses sizeof(PATH_MAX-sized array).
 4362     
 4363     Follow-up from 6c51818a0f55282cbe5a870f58ca82ca45ee472d
 4364     
 4365     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
 4366 
 4367 commit eceafd4a2d159f5c2b789ad77ee283c2aa848a59
 4368 Author: Jan Beich <jbeich@FreeBSD.org>
 4369 Date:   Fri Apr 9 14:44:13 2021 +0000
 4370 
 4371     meson: switch getpeer* checks to autotools style
 4372     
 4373     Checking for function "getpeereid" : YES
 4374     Checking for function "getpeerucred" : NO
 4375     [...]
 4376     include/meson.build:182:7: ERROR: Argument to "not" is not a boolean.
 4377     
 4378     Fixes: 68c2cfadd6d3 ("meson: Make sure defines are either set to 1 or not defined")
 4379 
 4380 commit 9f8421af637942e5d9963828f4ce55f456410603
 4381 Author: Jan Beich <jbeich@FreeBSD.org>
 4382 Date:   Fri Apr 9 15:22:22 2021 +0000
 4383 
 4384     meson: check pthread_setname_np like autotools
 4385     
 4386     FreeBSD < 12.2 and OpenBSD only have pthread_set_name_np.
 4387     As libpthread isn't in scope use -Werror to trip the check.
 4388     
 4389     Header <pthread.h> has symbol "PTHREAD_MUTEX_RECURSIVE" : YES
 4390     Checking if "pthread_setname_np(tid, name)" compiles: YES
 4391     
 4392     os/inputthread.c:326:5: error: implicit declaration of function 'pthread_setname_np' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
 4393         pthread_setname_np (pthread_self(), "InputThread");
 4394         ^
 4395     os/inputthread.c:447:5: error: implicit declaration of function 'pthread_setname_np' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
 4396         pthread_setname_np (pthread_self(), "MainThread");
 4397         ^
 4398     
 4399     Fixes: c20e7b5e2222 ("meson: Automatically detect HAVE_PTHREAD_SETNAME_NP")
 4400 
 4401 commit 38e875904b039ec1889e7c81eb1d577a4f69b26d
 4402 Author: Erik Kurzinger <ekurzinger@nvidia.com>
 4403 Date:   Thu Dec 3 14:57:51 2020 -0800
 4404 
 4405     xwayland: implement pixmap_from_buffers for the eglstream backend
 4406     
 4407     Provides an implementation for the pixmap_from_buffers DRI3 function for
 4408     xwayland's eglstream backend. This will be used by the NVIDIA GLX driver
 4409     to pass buffers from client applications to the server. These can then
 4410     be presented using the PRESENT extension.
 4411     
 4412     To hopefully make this less error-prone, we also introduce a "type"
 4413     field for this struct to distinguish between xwl_pixmaps for the new
 4414     DRI3-created pixmaps and those for the existing glamor-created pixmaps.
 4415     
 4416     Additionally, the patch enables wnmd present mode with the eglstream backend.
 4417     This involves creating a wl_buffer for the provided dma-buf before importing it
 4418     into EGL and passing this to the compositor so it can be scanned out directly
 4419     if possible.
 4420     
 4421     Since both backends now support this present mode, the HAS_PRESENT_FLIP flag is
 4422     no longer needed, so it can be removed.
 4423     
 4424     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4425     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 4426     Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
 4427 
 4428 commit bc99dd2127f12f1aae55971c09a2792eeaa98444
 4429 Author: Erik Kurzinger <ekurzinger@nvidia.com>
 4430 Date:   Wed Mar 3 11:56:41 2021 +0100
 4431 
 4432     xwayland: Add check_flip() glamor backend function
 4433     
 4434     This is preliminary work for hardware accelerated rendering with the
 4435     NVIDIA driver.
 4436     
 4437     This exposes a new glamor backend function, check_flip, which can be
 4438     used to control whether flipping is supported for the given pixmap.
 4439     
 4440     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4441     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 4442     Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
 4443 
 4444 commit 400d4d0fdd55192f394e1a8273dfb2423c895ec0
 4445 Author: Erik Kurzinger <ekurzinger@nvidia.com>
 4446 Date:   Fri Feb 12 12:09:27 2021 -0800
 4447 
 4448     xwayland: move formats and modifiers functions to common glamor code
 4449     
 4450     This is preliminary work for hardware accelerated rendering with the
 4451     NVIDIA driver.
 4452     
 4453     This moves the modifiers and formats functions previously only available
 4454     to the GBM backend to the common glamor code so that it can be used by
 4455     both the GBM and EGLStream backends.
 4456     
 4457     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4458     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 4459     Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
 4460 
 4461 commit ae225417c0a0828ffb24e11eb4b968c34692e25a
 4462 Author: Olivier Fourdan <ofourdan@redhat.com>
 4463 Date:   Wed Mar 3 09:55:12 2021 +0100
 4464 
 4465     xwayland: Move dmabuf interface to common glamor code
 4466     
 4467     This is preliminary work for hardware accelerated rendering with the
 4468     NVIDIA driver.
 4469     
 4470     The EGLStream backend can possibly also use the dmabuf interface, so
 4471     move the relevant code from the GBM specific source to the common bits.
 4472     
 4473     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4474 
 4475 commit d231ce2d9ce9644e77e8dbe8c5a23eeb11e85b55
 4476 Author: Povilas Kanapickas <povilas@radix.lt>
 4477 Date:   Wed Apr 7 22:16:43 2021 +0300
 4478 
 4479     meson: Disable LTO for tests
 4480     
 4481     `-flto=auto` together with `-Wl,-wrap` causes link errors at least in
 4482     certain compilers (e.g. GCC 10.2.0). Since this is reoccurring issue
 4483     (internet search shows similar problems with GCC 4.6 a decade ago) let's
 4484     disable LTO for tests even if it's disabled elsewhere.
 4485     
 4486     Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1116
 4487     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4488 
 4489 commit 68c2cfadd6d31f0787bc35dbafe32d7dfd638e27
 4490 Author: Povilas Kanapickas <povilas@radix.lt>
 4491 Date:   Mon Apr 5 16:24:47 2021 +0300
 4492 
 4493     meson: Make sure defines are either set to 1 or not defined
 4494     
 4495     This will make the behavior of meson consistent with autotools. The
 4496     configuration macros are exposed to public headers so any inconsistency
 4497     is likely to break code for anyone who's not careful to use #ifdef
 4498     instead of #if.
 4499     
 4500     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4501 
 4502 commit faff5bbdf5dec53101a9d8f624f45262016154c1
 4503 Author: Povilas Kanapickas <povilas@radix.lt>
 4504 Date:   Mon Apr 5 16:24:46 2021 +0300
 4505 
 4506     meson: Sync the name of INPUTTHREAD conf macro with autotools build
 4507     
 4508     The rest of dix code uses INPUTTHREAD, so having a different name in
 4509     meson configuration was an oversight.
 4510     
 4511     Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/936
 4512     
 4513     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4514 
 4515 commit b25795462f4754ec2e3c677a41dea33ed1be79da
 4516 Author: Povilas Kanapickas <povilas@radix.lt>
 4517 Date:   Mon Apr 5 16:24:48 2021 +0300
 4518 
 4519     meson: Add missing pthread dependency for libxserver_os library
 4520     
 4521     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4522 
 4523 commit 9582ef4efc72afa9f84b6469b5f81ce5dd8eb15d
 4524 Author: Povilas Kanapickas <povilas@radix.lt>
 4525 Date:   Mon Apr 5 16:24:45 2021 +0300
 4526 
 4527     meson: Fix typo in libxserver_os dependencies for openbsd
 4528     
 4529     This has not been tested, but os_deps is not used anywhere in the file,
 4530     so it's likely this was a typo.
 4531     
 4532     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4533 
 4534 commit 689496ed657ef055869f5eda7e09ff35edff30cc
 4535 Author: Povilas Kanapickas <povilas@radix.lt>
 4536 Date:   Wed Apr 7 21:55:03 2021 +0300
 4537 
 4538     meson: Switch project version to 20.x.y style
 4539 
 4540 commit 2df55813d0f553050ff06065a67e90f678db593a
 4541 Author: Povilas Kanapickas <povilas@radix.lt>
 4542 Date:   Wed Apr 7 21:55:02 2021 +0300
 4543 
 4544     meson: Drop version subpatch handling
 4545 
 4546 commit 5d3679104aaeabac585894606ad317b433b65238
 4547 Author: Adam Jackson <ajax@redhat.com>
 4548 Date:   Wed Apr 7 21:55:01 2021 +0300
 4549 
 4550     meson.build: Keep the protocol version looking like xserver 1.20.x did
 4551     
 4552     This effectively changes the versioning to be as if xserver 21.0 was
 4553     xserver 1.21.0. This should keep any client-side version checks that
 4554     know about the Xorg 7.0 -> xserver 1.0 epoch from getting confused.
 4555 
 4556 commit 3e4e70db10a4b2d531ccd649c18317ea2a49d256
 4557 Author: George Matsumura <gmmatsumura01@bvsd.org>
 4558 Date:   Wed Apr 7 17:28:46 2021 -0600
 4559 
 4560     meson: Fix DragonFly BSD identifier in meson build files
 4561     
 4562     This changes the operating system identifier tested against
 4563     host_machine.system() in meson build files from "dragonflybsd"
 4564     to the officially stable "dragonfly".
 4565     
 4566     Signed-off-by: George Matsumura <gmmatsumura01@bvsd.org>
 4567 
 4568 commit 199f278a1b7570b1cb6e24b8bedb4d721b3c9938
 4569 Author: Edouard Gaulué <edouard@e-gaulue.com>
 4570 Date:   Tue Mar 16 20:59:17 2021 +0100
 4571 
 4572     French text in Preferences Pane Review
 4573 
 4574 commit 65b27d82f2c6c3eecbc7370765ee7c036b245b2f
 4575 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4576 Date:   Sun Apr 4 16:10:28 2021 -0700
 4577 
 4578     xquartz: Call PseudoramiXExtensionInit() through InitOutput() just like xwin
 4579     
 4580     Fixes: https://github.com/XQuartz/XQuartz/issues/140
 4581     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4582 
 4583 commit 34e2a64ce00c219d64b8169b774661d5727c45c7
 4584 Author: Pascal VITOUX <vitoux.pascal@gmail.com>
 4585 Date:   Fri Nov 27 16:54:59 2020 +0000
 4586 
 4587     xfree86: fix gtf support detection for EDID 1.4
 4588     
 4589     According to the "VESA Enhanced EDID Standard", all GTF compliant
 4590     displays are continuous frequency.
 4591     
 4592     The GTF support flags in 'Display Range Limits Descriptor' cannot be
 4593     used if the display is a non-continuous frequency multi-mode display.
 4594     
 4595     Closes #1105
 4596     Signed-off-by: Pascal VITOUX <vitoux.pascal@gmail.com>
 4597     Fixes: 6a79a737 ("xfree86: add drm modes on non-GTF panels")
 4598     Reviewed-by: Aaron Ma aaron.ma@canonical.com
 4599 
 4600 commit b75d0cca28aaae5cd21ad76ad2822138fac2882a
 4601 Author: Aaron Plattner <aplattner@nvidia.com>
 4602 Date:   Fri Feb 19 11:47:13 2021 -0800
 4603 
 4604     modesetting: Defer crtc gamma size upgrade to drmmode_setup_colormap
 4605     
 4606     Rather than trying to create a gamma ramp array of the appropriate size in
 4607     drmmode_crtc_init when the GAMMA_LUT property should be used, just flag the crtc
 4608     as wanting to use the GAMMA_LUT property and then replace the gamma ramp later,
 4609     right before calling xf86HandleColormaps. This avoids a problem during initial
 4610     startup where xf86RandR12CreateObjects12 hard-codes a gamma ramp size of 256,
 4611     causing xf86RandR12CrtcSetGamma to read past the end of the DIX layer's RandR
 4612     gamma ramp array:
 4613     
 4614       PreInit
 4615         drmmode_pre_init
 4616           drmmode_crtc_init
 4617             crtc->gamma_size = 1024
 4618     
 4619       ScreenInit
 4620         xf86CrtcScreenInit
 4621           xf86RandR12Init
 4622             xf86RandR12Init12
 4623               xf86RandR12CreateObjects12
 4624                 RRCrtcCreate
 4625                   randr_crtc->gammaSize = 0
 4626               xf86RandR12InitGamma(pScrn, 256)
 4627                 RRCrtcGammaSetSize
 4628                   randr_crtc->gammaSize = 256
 4629               xf86RandR12InitGamma
 4630                 xf86RandR12CrtcInitGamma
 4631                   RRCrtcGammaSet
 4632                     xf86RandR12CrtcSetGamma
 4633                       // crtc->gamma_size is 1024 here, while randr_crtc->gammaRed
 4634                       // is a 256-element array.
 4635                       memcpy(crtc->gamma_red, randr_crtc->gammaRed, crtc->gamma_size * sizeof(crtc->gamma_red[0]));
 4636         drmmode_setup_colormap
 4637           xf86HandleColormaps
 4638             xf86RandR12InitGamma
 4639               RRCrtcGammaSetSize
 4640                 randr_crtc->gammaSize = 1024
 4641     
 4642     Fixes: 245b9db0 - modesetting: Use GAMMA_LUT when available
 4643     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1126
 4644     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 4645     Reviewed-by: Robert Morell <rmorell@nvidia.com>
 4646 
 4647 commit ab8f8c98418db6954b17d93280b7b526fc1d3f7c
 4648 Author: Jeremie Courreges-Anglas <jca@wxcvbn.org>
 4649 Date:   Thu Jan 21 23:52:15 2021 +0100
 4650 
 4651     xserver/os: safer IPv6 "kame hack" fix, only override sin6_scope_id if zero
 4652     
 4653     This helps on KAME-based systems which want to get rid of this hack.
 4654     The assumption is that if sin6_scope_id is set, then the interface index
 4655     is no longer embedded in the address.
 4656     
 4657     Signed-off-by: Jeremie Courreges-Anglas <jca@wxcvbn.org>
 4658 
 4659 commit aeed57d722f2eb978c17fd7e859334d34af38d05
 4660 Author: Povilas Kanapickas <povilas@radix.lt>
 4661 Date:   Fri Mar 26 00:09:41 2021 +0200
 4662 
 4663     xkb: Fix parsing of XkbSA_DeviceValuator action type
 4664     
 4665     The xkb spec defines that the 7th element of the DeviceValuator key
 4666     action description is "valuator 2 value".
 4667     
 4668     This error most likely was accidentally introduced as a copy-paste error
 4669     in edeb033f29ae2d52e86c543ccbf22fb7ae1fdb7f.
 4670     
 4671     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4672 
 4673 commit a3931ec6f43857aeed7feac5d223d7db6728145e
 4674 Author: Povilas Kanapickas <povilas@radix.lt>
 4675 Date:   Thu Mar 25 22:46:33 2021 +0200
 4676 
 4677     xfree86: Create a symlink X -> Xorg when installing using meson
 4678     
 4679     This brings the behavior closer than what we currently have with
 4680     autotools-based build system.
 4681     
 4682     Meson does not currently have native support for symlinks.
 4683     See https://github.com/mesonbuild/meson/issues/1602.
 4684     
 4685     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4686 
 4687 commit 09cd65233e0f5c04e7e3d063decf357f239a65f6
 4688 Author: Povilas Kanapickas <povilas@radix.lt>
 4689 Date:   Thu Mar 25 22:48:56 2021 +0200
 4690 
 4691     xfree86: Set appropriate install_mode for suid_wrapper
 4692 
 4693 commit 88b5e1a219a16dd66be6302dbf88ec93d317f991
 4694 Author: Povilas Kanapickas <povilas@radix.lt>
 4695 Date:   Thu Mar 25 22:48:55 2021 +0200
 4696 
 4697     meson: Bump min meson version to 0.47 to get install_mode support
 4698 
 4699 commit 82d2156ba7b4e592a2ceb5da767b690862852caa
 4700 Author: Povilas Kanapickas <povilas@radix.lt>
 4701 Date:   Thu Mar 25 22:51:39 2021 +0200
 4702 
 4703     xfree86: Fix meson overwriting suid wrapper with the wrapped executable
 4704     
 4705     Meson gets confused when there are two targets of the same name within
 4706     the same directory, so we use a different intermediate name.
 4707     
 4708     This is a problem with the Xorg SUID wrapper which has the same filename
 4709     as the real Xorg executable and is configured in the same meson.build
 4710     file. This commit works around this by using a different filename in
 4711     build stage and renaming only when installing.
 4712     
 4713     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4714 
 4715 commit ba51acb1de752924c389cedbca39b5dc63679ee6
 4716 Author: Povilas Kanapickas <povilas@radix.lt>
 4717 Date:   Thu Mar 25 22:57:56 2021 +0200
 4718 
 4719     miext: Remove if check which is always true
 4720     
 4721     In both cases we check for width > 0 just above, and the variable is not
 4722     modified between the checks, so the condition is always true.
 4723     
 4724     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4725 
 4726 commit 99e7ccffb38b4c93ff0c73586ec72a7fb78cae53
 4727 Author: Povilas Kanapickas <povilas@radix.lt>
 4728 Date:   Thu Mar 25 23:18:14 2021 +0200
 4729 
 4730     dix: Fix URL to description of focus in/out model
 4731     
 4732     The current URL points to an unrelated patch for acpid.
 4733     
 4734     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 4735 
 4736 commit 1b7dca27eb44eac9cb0a8d1463d968872c76f4d5
 4737 Author: Simon Ser <contact@emersion.fr>
 4738 Date:   Thu Feb 18 12:04:48 2021 +0100
 4739 
 4740     xwayland: remove wl_log_set_handler_client workaround
 4741     
 4742     This bumps the minimum Wayland version to 1.5 (released in 2014).
 4743     
 4744     Signed-off-by: Simon Ser <contact@emersion.fr>
 4745     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4746     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 4747     Reviewed-by: Martin Peres <martin.peres@mupuf.org>
 4748 
 4749 commit 6c51818a0f55282cbe5a870f58ca82ca45ee472d
 4750 Author: Michel Dänzer <mdaenzer@redhat.com>
 4751 Date:   Fri Mar 5 15:23:53 2021 +0100
 4752 
 4753     meson: Make sure XKM_OUTPUT_DIR has a trailing slash
 4754     
 4755     RunXkbComp passes an invalid file path to xkbcomp if there's no
 4756     trailing slash.
 4757     
 4758     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1146
 4759     Suggested-by: Dylan Baker <dylan.c.baker@intel.com>
 4760 
 4761 commit 376eaadde36f80fcbe6b0391a3385e77b4602854
 4762 Author: Jan Beich <jbeich@FreeBSD.org>
 4763 Date:   Fri Mar 5 22:50:51 2021 +0000
 4764 
 4765     meson: hide C API if Xorg is disabled (like autotools)
 4766     
 4767     When building only Xwayland using Meson some files are always installed.
 4768     This causes package conflict if Xwayland is built separately from Xorg.
 4769     
 4770       include/xorg/compositeext.h
 4771       include/xorg/damage.h
 4772       include/xorg/damagestr.h
 4773       include/xorg/dbestruct.h
 4774       include/xorg/dri3.h
 4775       include/xorg/fb.h
 4776       include/xorg/fboverlay.h
 4777       include/xorg/fbpict.h
 4778       include/xorg/fbrop.h
 4779       include/xorg/geext.h
 4780       include/xorg/geint.h
 4781       include/xorg/glyphstr.h
 4782       include/xorg/mi.h
 4783       include/xorg/micmap.h
 4784       include/xorg/micoord.h
 4785       include/xorg/migc.h
 4786       include/xorg/miline.h
 4787       include/xorg/mioverlay.h
 4788       include/xorg/mipict.h
 4789       include/xorg/mipointer.h
 4790       include/xorg/mipointrst.h
 4791       include/xorg/mistruct.h
 4792       include/xorg/misync.h
 4793       include/xorg/misyncfd.h
 4794       include/xorg/misyncshm.h
 4795       include/xorg/misyncstr.h
 4796       include/xorg/mizerarc.h
 4797       include/xorg/panoramiX.h
 4798       include/xorg/panoramiXsrv.h
 4799       include/xorg/picture.h
 4800       include/xorg/picturestr.h
 4801       include/xorg/present.h
 4802       include/xorg/presentext.h
 4803       include/xorg/randrstr.h
 4804       include/xorg/rrtransform.h
 4805       include/xorg/shadow.h
 4806       include/xorg/shmint.h
 4807       include/xorg/syncsdk.h
 4808       include/xorg/vndserver.h
 4809       include/xorg/wfbrename.h
 4810       include/xorg/xace.h
 4811       include/xorg/xacestr.h
 4812       include/xorg/xorg-server.h
 4813       include/xorg/xvdix.h
 4814       include/xorg/xvmcext.h
 4815       share/aclocal/xorg-server.m4
 4816     
 4817     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4818 
 4819 commit 4ae36f418ed683532b0b6991e4a1e7d56740b845
 4820 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4821 Date:   Mon Mar 8 21:02:40 2021 -0800
 4822 
 4823     xquartz: Ensure the mouse pointer is shown when switching to a native macOS alert or window
 4824     
 4825     Fixes: https://github.com/XQuartz/XQuartz/issues/100
 4826     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4827 
 4828 commit b2d96b5cd459963a9587ee9c86afc9266ba3d02b
 4829 Author: Matthieu Herrb <matthieu.herrb@laas.fr>
 4830 Date:   Sat Feb 27 11:30:18 2021 +0100
 4831 
 4832     Avoid sequences of malloc(0) / free() by checking the length.
 4833     
 4834     This has an impact on heap fragmentation.
 4835     
 4836     Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
 4837 
 4838 commit 15a413e11d186a9206a39a9b2fe4b72c065d5918
 4839 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4840 Date:   Mon Feb 22 23:02:42 2021 -0800
 4841 
 4842     xquartz: Update meson build to remove deleted files
 4843     
 4844     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4845 
 4846 commit e59848548a462f1a0ac751bb8bb6afe56258cf4e
 4847 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4848 Date:   Fri Mar 5 22:57:24 2021 -0800
 4849 
 4850     xquartz: Fix appFlags build failure with macOS 10.15+ SDKs
 4851     
 4852     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4853 
 4854 commit 69e087caa4fdfcc303080c021ba463afcf4290c7
 4855 Author: Olivier Fourdan <ofourdan@redhat.com>
 4856 Date:   Fri Feb 5 11:36:15 2021 +0100
 4857 
 4858     xwayland: Fix path in pkg-config with autoconf
 4859     
 4860     When using autoconf/automake to build Xwayland, the actual path to
 4861     Xwayland is not fully qualified and refers to the "exec_prefix".
 4862     
 4863     As a result, the path provided by the generated pkg-config file is wrong
 4864     when using autoconf to build the Xserver.
 4865     
 4866     Fix the xwayland.pc file to also set the variable "prefix" and
 4867     "exec_prefix" so that the path to Xwayland is fully resolved.
 4868     
 4869     Add those variables to the meson build as well for good measure.
 4870     
 4871     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4872     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 4873     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
 4874 
 4875 commit d7391f383ddca5089586b4d04fede56169a1a85e
 4876 Author: Olivier Fourdan <ofourdan@redhat.com>
 4877 Date:   Thu Mar 4 14:13:41 2021 +0100
 4878 
 4879     xwayland: Fix LeaveNotify for relative pointer
 4880     
 4881     Since commit 20c78f38, we use the relative pointer for enter/leave
 4882     events.
 4883     
 4884     However, sprite_check_lost_focus() which verifies whether the pointer has
 4885     left an Xwayland surface still explicitly check for the absolute
 4886     pointer.
 4887     
 4888     As a result, no LeaveNotify event is emitted anymore now when the
 4889     pointer crosses from an Xwayland surface to a Wayland native one.
 4890     
 4891     Make sure to check the last slave device against get_pointer_event() as
 4892     well, not just the absolute pointer.
 4893     
 4894     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4895     Acked-by: Martin Peres <martin.peres@mupuf.org>
 4896     Acked-by: Roman Gilg <subdiff@gmail.com>
 4897     Tested-by: Roman Gilg <subdiff@gmail.com>
 4898     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 4899     Fixes: 20c78f38 - xwayland: use get_pointer_device() for enter/leave
 4900                       handling too
 4901 
 4902 commit a5367face12d8e4162bc49a60b5d13955a7fb293
 4903 Author: Jacob Cherry <jcherry@nvidia.com>
 4904 Date:   Wed Mar 3 17:50:31 2021 +0000
 4905 
 4906     xfree86: Fix autoconfig secondary GPU devices
 4907     
 4908     The code path added by commit 69e4b8e6 (xfree86: attempt to autoconfig
 4909     gpu slave devices (v3)) assumes that it will only be run if the primary
 4910     device on the screen is the first device in xf86configptr->conf_device_lst.
 4911     While this is true most of the time, there are two specific cases where
 4912     this assumption fails.
 4913     
 4914     First, if the first device in conf_device_lst is assigned to a different
 4915     seat than the running X server, it will be skipped by the previous
 4916     FIND_SUITABLE macro usage. Second, if the primary device was explicitly
 4917     assigned to the screen but auto_gpu_device is still set and no secondary
 4918     devices were explicitly listed, that device may not be the first device
 4919     in conf_device_lst.
 4920     
 4921     When the first device in conf_device_lst is not the primary device
 4922     assigned to the screen, two problems emerge. First, the first device in
 4923     conf_device_lst will never be assigned to the screen as a secondary
 4924     device. Second, the primary device is additionally assigned to the
 4925     screen as a secondary device. The combination of these problems causes
 4926     certain otherwise valid configurations to be invalid. For example, if a
 4927     primary device is assigned to a screen and a secondary device is listed
 4928     in the config but not explicitly assigned to the screen, then one order
 4929     of the device sections results in a usable PRIME or Reverse PRIME setup
 4930     and the other order does not.
 4931     
 4932     This commit removes the assumption that the primary device is the first
 4933     device in conf_device_lst by starting the loop from the start of
 4934     conf_device_lst and skipping the primary device when it is encountered.
 4935     
 4936     Signed-off-by: Jacob Cherry <jcherry@nvidia.com>
 4937 
 4938 commit 97ed0048e45f4909a0c164b27e768af8c9364068
 4939 Author: Olivier Fourdan <ofourdan@redhat.com>
 4940 Date:   Fri Dec 18 17:53:33 2020 +0100
 4941 
 4942     xwayland: Delay cursor visibility update
 4943     
 4944     Xwayland won't emulate XWarpPointer requests if the cursor is visible,
 4945     this is to avoid having the cursor jumping on screen and preventing
 4946     random X11 clients from controlling the pointer in Wayland, while
 4947     allowing games which use that mechanism with a hidden cursor to work in
 4948     Xwayland.
 4949     
 4950     There are, however, games which tend to do it in the wrong order, i.e.
 4951     show the cursor before moving the pointer, and because Xwayland will not
 4952     allow an X11 client to move the pointer while the cursor is visible, the
 4953     requests will fail.
 4954     
 4955     Add a workaround for such X11 clients, when the cursor is being shown,
 4956     keep it invisible until the cursor is actually moved. This way, X11
 4957     clients which show their cursor just before moving it would still have a
 4958     chance to succeed.
 4959     
 4960     v2: Add a timeout to show the cursor for well behaved clients.
 4961     v3: Some cleanup (Michel)
 4962     v4: Do not cancel cursor delay when updating the cursor to avoid
 4963         delaying cursor visibility indefinitely if the client keeps
 4964         settings different cursors (Michel)
 4965     
 4966     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 4967     Tested-by: Jaap Buurman jaapbuurman@gmail.com
 4968     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 4969     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/734
 4970 
 4971 commit 9d329a0fb17c1a7840408d329ee2e2a04d357387
 4972 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4973 Date:   Sun Feb 21 21:49:58 2021 -0800
 4974 
 4975     xquartz: Remove a check for NSAppKitVersionNumber >= NSAppKitVersionNumber10_7
 4976     
 4977     This check is always true on our supported systems.
 4978     
 4979     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4980 
 4981 commit 839b49ac05c3285434d8487b48d8b52323187e44
 4982 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4983 Date:   Sun Feb 21 21:49:14 2021 -0800
 4984 
 4985     xquartz: Don't include strndup.c any more since we no longer support 10.8 and older
 4986     
 4987     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4988 
 4989 commit 677eb6827bd68bdf29e3539d1e10e9872896efec
 4990 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4991 Date:   Sun Feb 21 20:58:42 2021 -0800
 4992 
 4993     xquartz: Add a launch trampoline to better integrate with modern versions of macOS
 4994     
 4995     Fixes: https://github.com/XQuartz/XQuartz/issues/6
 4996     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 4997 
 4998 commit 25035229b73742f9e6a96ac3e535b30b5c6196a8
 4999 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5000 Date:   Fri Feb 19 23:16:56 2021 -0800
 5001 
 5002     xquartz: Don't process AppKit events if we haven't finished initializing
 5003     
 5004     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5005 
 5006 commit 487286d47260782d331229af10df17711cbca1ea
 5007 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5008 Date:   Sat Feb 20 17:24:14 2021 -0800
 5009 
 5010     xquartz: Allocate each fbconfig separately
 5011     
 5012     A change during the 1.20 development cycle resulted in fbconfigs being walked
 5013     and deallocated individually during __glXScreenDestroy.  This change
 5014     now avoids a use-after-free caused by that change.
 5015     
 5016     ==50859==ERROR: AddressSanitizer: heap-use-after-free on address 0x00010d3819c8 at pc 0x0001009d4230 bp 0x00016feca7a0 sp 0x00016feca798
 5017     READ of size 8 at 0x00010d3819c8 thread T5
 5018         #0 0x1009d422c in __glXScreenDestroy glxscreens.c:448
 5019         #1 0x10091cc98 in __glXAquaScreenDestroy indirect.c:510
 5020         #2 0x1009d2734 in glxCloseScreen glxscreens.c:169
 5021         #3 0x100740a24 in dix_main main.c:325
 5022         #4 0x10023ed50 in server_thread quartzStartup.c:65
 5023         #5 0x199ae7fd0 in _pthread_start+0x13c (libsystem_pthread.dylib:arm64e+0x6fd0)
 5024         #6 0x199ae2d38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1d38)
 5025     
 5026     0x00010d3819c8 is located 200 bytes inside of 12800-byte region [0x00010d381900,0x00010d384b00)
 5027     freed by thread T5 here:
 5028         #0 0x101477ba8 in wrap_free+0x98 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x3fba8)
 5029         #1 0x1009d4240 in __glXScreenDestroy glxscreens.c:449
 5030         #2 0x10091cc98 in __glXAquaScreenDestroy indirect.c:510
 5031         #3 0x1009d2734 in glxCloseScreen glxscreens.c:169
 5032         #4 0x100740a24 in dix_main main.c:325
 5033         #5 0x10023ed50 in server_thread quartzStartup.c:65
 5034         #6 0x199ae7fd0 in _pthread_start+0x13c (libsystem_pthread.dylib:arm64e+0x6fd0)
 5035         #7 0x199ae2d38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1d38)
 5036     
 5037     previously allocated by thread T5 here:
 5038         #0 0x101477e38 in wrap_calloc+0x9c (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x3fe38)
 5039         #1 0x100925a40 in __glXAquaCreateVisualConfigs visualConfigs.c:116
 5040         #2 0x10091cb24 in __glXAquaScreenProbe+0x224 (X11.bin:arm64+0x100730b24)
 5041         #3 0x1009cd840 in xorgGlxServerInit glxext.c:528
 5042         #4 0x10074539c in _CallCallbacks dixutils.c:743
 5043         #5 0x100932a70 in CallCallbacks callback.h:83
 5044         #6 0x100932478 in GlxExtensionInit vndext.c:244
 5045         #7 0x10020a364 in InitExtensions miinitext.c:267
 5046         #8 0x10073fe7c in dix_main main.c:197
 5047         #9 0x10023ed50 in server_thread quartzStartup.c:65
 5048         #10 0x199ae7fd0 in _pthread_start+0x13c (libsystem_pthread.dylib:arm64e+0x6fd0)
 5049         #11 0x199ae2d38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1d38)
 5050     
 5051     Regressed-in: 4b0a3cbab131eb453e2b3fc0337121969258a7be
 5052     CC: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
 5053     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5054 
 5055 commit 6a83fb51b7a8b2e167e7d6380229b69e5452f91f
 5056 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5057 Date:   Sat Feb 20 15:17:18 2021 -0800
 5058 
 5059     xquartz: Fix a compiler warning about const incompatible pointer assignment
 5060     
 5061     driWrap.c:541:30: error: assigning to 'GCOps *' (aka 'struct _GCOps *') from 'const GCOps *' (aka 'const struct _GCOps *') discards
 5062           qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
 5063             pGCPriv->originalOps = pGC->ops;
 5064                                  ^ ~~~~~~~~
 5065     
 5066     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5067 
 5068 commit a3ddcdd56c246e2226c7cdf372c2a1294eb6d888
 5069 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5070 Date:   Thu Feb 18 23:16:15 2021 -0800
 5071 
 5072     xquartz: Fix build with sparkle enabled
 5073     
 5074     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5075 
 5076 commit 279bcbd9cf9e557a6789d6e4cede8e8799c3788e
 5077 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5078 Date:   Thu Feb 18 12:43:53 2021 -0800
 5079 
 5080     xquartz: Silence a compiler warning about missing internal methods on NSApplication
 5081     
 5082     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5083 
 5084 commit fe89c70e472a9da0541b798eea60c5362b49a99d
 5085 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5086 Date:   Thu Feb 18 22:19:21 2021 -0800
 5087 
 5088     xquartz: Rewrite Window menu handling to not depend on X11App.windowsMenu.numberOfItems being correct in -awakeFromNib
 5089     
 5090     Fixes: https://github.com/XQuartz/XQuartz/issues/56
 5091     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5092 
 5093 commit 41aed8f69634ec61ea0e40fff1cfdaf868be843e
 5094 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5095 Date:   Thu Feb 18 15:41:29 2021 -0800
 5096 
 5097     xquartz: Convert X11Controller ivars into @properties
 5098     
 5099     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5100 
 5101 commit c2750e1fab774c8e6675ecf284124ff55b5be9cf
 5102 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5103 Date:   Thu Feb 18 14:39:46 2021 -0800
 5104 
 5105     xquartz: Convert X11Application ivars into @properties
 5106     
 5107     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5108 
 5109 commit f51b97b0de2e562e341f2d72c5f00a74c71a159f
 5110 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5111 Date:   Thu Feb 18 14:47:50 2021 -0800
 5112 
 5113     xquartz: Fold quartzCommon.h into quartz.h
 5114     
 5115     Everything declared in it comes from quartz.c, so match reality.
 5116     
 5117     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5118 
 5119 commit 4b4500c48f06e7ef41cd94f417e49b3f4f1412ae
 5120 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5121 Date:   Thu Feb 18 13:00:43 2021 -0800
 5122 
 5123     xquartz: Fold away some unnecessary hops to X11Controller through X11Application
 5124     
 5125     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5126 
 5127 commit 39c0e1c0ab6a0a89a71f26446973c779ca7fd927
 5128 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5129 Date:   Thu Feb 18 09:41:30 2021 -0800
 5130 
 5131     xquartz: Fold away array_with_strings_and_numbers and simplify with more modern Objective-C
 5132     
 5133     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5134 
 5135 commit 87f8fe1f74f10faf0ffc84f03539799ad4c2465e
 5136 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5137 Date:   Thu Feb 18 09:33:56 2021 -0800
 5138 
 5139     xqaurtz: Remove message_kit_thread() and use dispatch instead
 5140     
 5141     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5142 
 5143 commit 94e4e173486c2a94ddcfd2d0515e1ee6731f6656
 5144 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5145 Date:   Wed Feb 17 23:58:53 2021 -0800
 5146 
 5147     xquartz: Use objc_autoreleasePoolPush / objc_autoreleasePoolPop directly in QuartzBlockHandler
 5148     
 5149     It violates @autoreleasepool best practices, and this helps collapse quartzCocoa.m into quartz.c
 5150     
 5151     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5152 
 5153 commit fba421f700498fa382089df47942df36a2d75ce6
 5154 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5155 Date:   Wed Feb 17 22:04:55 2021 -0800
 5156 
 5157     xquartz: Minor code modernization -- @autoreleasepool adoption
 5158     
 5159     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5160 
 5161 commit 318f8a4a8a47a0ce4bbbf4290469e933602c9b30
 5162 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5163 Date:   Wed Feb 17 20:55:06 2021 -0800
 5164 
 5165     xquartz: Remove some dead code for compatibility with older nibs
 5166     
 5167     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5168 
 5169 commit 72a39dccf99191fbfbb4b399c446fd017d55f24e
 5170 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5171 Date:   Thu Feb 18 16:05:34 2021 -0800
 5172 
 5173     xquartz: Remove a workaround for AppKit versions older than Lion
 5174     
 5175     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5176 
 5177 commit 7e2875035800887f3f41f75cba4299088daf939a
 5178 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5179 Date:   Wed Feb 17 15:45:45 2021 -0800
 5180 
 5181     xquartz: Fix applications menu table background color for dark mode
 5182     
 5183     Fixes: https://github.com/XQuartz/XQuartz/issues/32
 5184     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5185 
 5186 commit 85beee9885a8e65960fbbde2de9aa28598b4d6ae
 5187 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5188 Date:   Wed Feb 17 15:16:26 2021 -0800
 5189 
 5190     xquartz: Apply Xcode 12.4 automatic updates to nibs
 5191     
 5192     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5193 
 5194 commit 4e892aa6e132447e43d7bae7e3aca4f1fb172f93
 5195 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5196 Date:   Wed Feb 17 13:38:31 2021 -0800
 5197 
 5198     xquartz: Update the about box copyright to 2021
 5199     
 5200     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5201 
 5202 commit c9a3b14c1472632afaff340f73a77a2b961f195a
 5203 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5204 Date:   Mon Feb 1 16:27:38 2021 -0800
 5205 
 5206     xquartz: Ensure we call into TIS on the main thread
 5207     
 5208     There is a place where this code was called on the main thread.
 5209     
 5210     We're using a rather nasty anti-pattern to just call a block inline rather
 5211     than synchonously calling it on the main thread if we're already on the main
 5212     thread.  This code could use a good overhaul, but I don't have time to rip
 5213     it apart right now.  This will address the immediate issue.
 5214     
 5215     Fixes: https://github.com/XQuartz/XQuartz/issues/40
 5216     Fixes: https://github.com/XQuartz/XQuartz/issues/48
 5217     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5218 
 5219 commit af17b5c499ded807395c7ef02254d5af8ddc4667
 5220 Author: Povilas Kanapickas <povilas@radix.lt>
 5221 Date:   Mon Feb 15 14:52:32 2021 +0200
 5222 
 5223     dix: Use correct listener to deliver touch end events
 5224     
 5225     This fixes an problem left in f682e0563f736ed2c2c612ed575e05b6e3db945e
 5226     due to an incorrect cherry-pick.
 5227     
 5228     We must use old listener->listener to deliver the touch event. Otherwise
 5229     grab won't let the event through and the abovementioned commit has no
 5230     effect.
 5231     
 5232     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 5233 
 5234 commit 20c78f38a0b33b88bc82a2bcd54d2e6c74a4c132
 5235 Author: Peter Hutterer <peter.hutterer@who-t.net>
 5236 Date:   Tue Feb 16 14:48:13 2021 +1000
 5237 
 5238     xwayland: use get_pointer_device() for enter/leave handling too
 5239     
 5240     In Weston, clicking the window decoration of an Xwayland client gives us a
 5241     wl_pointer.button event immediately followed by a wl_pointer.leave event.
 5242     The leave event does not contain any button state information, so the button
 5243     remains logically down in the DIX.
 5244     
 5245     Once the pointer button is released, a wl_pointer.enter event is sent with
 5246     the current button state (zero). This needs to trigger a ButtonRelease event
 5247     but for that we need to ensure that the device is the same as the one we send
 5248     ButtonPress events through.
 5249     
 5250     Fixes a regression introduced in a4095162ca923992a8cfae6d0f09ff9f8144762a.
 5251     
 5252     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
 5253     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 5254 
 5255 commit dee2bb033e78e2f4aae7f5708c3d4fc74a9957de
 5256 Author: Olivier Fourdan <ofourdan@redhat.com>
 5257 Date:   Mon Feb 15 11:33:56 2021 +0100
 5258 
 5259     dix: Guard against non-existing PtrFeedbackPtr
 5260     
 5261     Trying to change the pointer control settings on a device without
 5262     PtrFeedbackPtr would be a bug and a crash in the Xserver.
 5263     
 5264     Guard against that case by returning early with a BadImplementation
 5265     error, that might kill the X11 client but the Xserver would survive.
 5266     
 5267     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5268     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 5269     Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1137
 5270 
 5271 commit ab76272a7d2bff997985893c89147412a7360310
 5272 Author: Olivier Fourdan <ofourdan@redhat.com>
 5273 Date:   Mon Feb 15 11:23:59 2021 +0100
 5274 
 5275     xwayland: Add PtrFeedback to the touch device
 5276     
 5277     Trying to change the acceleration/threshold on Xwayland cannot work, and
 5278     the corresponding handler xwl_pointer_control() is a no-op.
 5279     
 5280     Yet, an X11 client trying to change those on the touch device may
 5281     possibly cause a crash because the touch device in Xwayland doesn't set
 5282     that.
 5283     
 5284     Initialize the touch device's PtrFeedback to make sure that just cannot
 5285     happen.
 5286     
 5287     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5288     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 5289     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1137
 5290 
 5291 commit a4095162ca923992a8cfae6d0f09ff9f8144762a
 5292 Author: Olivier Fourdan <ofourdan@redhat.com>
 5293 Date:   Thu Feb 11 11:42:01 2021 +0100
 5294 
 5295     xwayland: Use relative device for buttons/axis
 5296     
 5297     We are using the relative pointer for motion events, but buttons and
 5298     axis events still go through the absolute pointer device.
 5299     
 5300     That means additional DeviceChanged events that could be avoided if the
 5301     buttons and axis events were coming from the same device as motion
 5302     events.
 5303     
 5304     Route those events to the relative pointer if available so that motion,
 5305     buttons and axis events come from the same device (most of the time).
 5306     
 5307     Suggested-by: Peter Hutterer <peter.hutterer@who-t.net>
 5308     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5309     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 5310     Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130
 5311 
 5312 commit 1abab61dc23d585860bc847bcecb1b0315977c27
 5313 Author: Olivier Fourdan <ofourdan@redhat.com>
 5314 Date:   Thu Feb 11 15:32:34 2021 +0100
 5315 
 5316     xwayland: Add wheel axis to relative pointer
 5317     
 5318     The relative pointer only has 2 axis, if we want to route the mouse
 5319     wheel events to that device, we need to add the axis definition, similar
 5320     to what is done for the absolute pointer.
 5321     
 5322     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5323     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 5324     Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130
 5325 
 5326 commit 71817928247971566903d56c0571db61b7933747
 5327 Author: Olivier Fourdan <ofourdan@redhat.com>
 5328 Date:   Tue Feb 9 13:33:05 2021 +0100
 5329 
 5330     xwayland: Split dispatch_pointer_motion_event
 5331     
 5332     This is a cleanup patch, no functional change.
 5333     
 5334     Split the function dispatch_pointer_motion_event() into three separate
 5335     simpler functions, relative motion with a warp emulator, relative motion
 5336     and absolute motion.
 5337     
 5338     This makes the code a lot easier to read for me, rather than having
 5339     everything in a single function with nested if/else conditions.
 5340     
 5341     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5342     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 5343 
 5344 commit c5c5322ad69b0751f16c785a479b2989b8794235
 5345 Author: Olivier Fourdan <ofourdan@redhat.com>
 5346 Date:   Tue Feb 9 13:04:59 2021 +0100
 5347 
 5348     xwayland: Use relative values for raw events
 5349     
 5350     Xwayland supports relative motion events from the Wayland compositor via
 5351     the relative-pointer protocol, and converts those to the absolute range
 5352     in device units for raw events.
 5353     
 5354     Some X11 clients however wrongly assume relative values in the axis
 5355     values even for devices explicitly labeled as absolute. While this is a
 5356     bug in the client, such applications would work fine in plain Xorg but
 5357     not with Xwayland.
 5358     
 5359     To avoid that issue, use the relative values for raw events without
 5360     conversion, so that such application continue to work in Xwayland.
 5361     
 5362     Thanks Peter for figuring out the root cause.
 5363     
 5364     v2: Don't duplicate relative and absolute events (Peter)
 5365     v3: Use POINTER_RAWONLY (Peter)
 5366     
 5367     Suggested-by: Peter Hutterer <peter.hutterer@who-t.net>
 5368     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5369     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 5370     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130
 5371 
 5372 commit ebdb2e264676c3b27a708328348efe73e0d3c8c2
 5373 Author: Olivier Fourdan <ofourdan@redhat.com>
 5374 Date:   Tue Feb 9 13:01:21 2021 +0100
 5375 
 5376     xwayland: Use a resolution of 0 for relative motion
 5377     
 5378     That's what evdev/libinput drivers do.
 5379     
 5380     Suggested-by: Peter Hutterer <peter.hutterer@who-t.net>
 5381     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5382     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 5383     Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130
 5384 
 5385 commit b5e1f13681090fc327dc2cabee1dc123273e785b
 5386 Author: Olivier Fourdan <ofourdan@redhat.com>
 5387 Date:   Thu Feb 11 09:48:12 2021 +0100
 5388 
 5389     dix: Add POINTER_RAWONLY flag
 5390     
 5391     This add a new flag POINTER_RAWONLY for GetPointerEvents() which does
 5392     pretty much the opposite of POINTER_NORAW.
 5393     
 5394     Basically, this tells GetPointerEvents() that we only want the
 5395     DeviceChanged events and any raw events for this motion but no actual
 5396     motion events.
 5397     
 5398     This is preliminary work for Xwayland to be able to use relative motion
 5399     events for raw events. Xwayland would use absolute events for raw
 5400     events, but some X11 clients (wrongly) assume raw events to be always
 5401     relative.
 5402     
 5403     To allow such clients to work with Xwayland, it needs to switch to
 5404     relative raw events (if those are available from the Wayland
 5405     compositor).
 5406     
 5407     However, Xwayland cannot use relative motion events for actual pointer
 5408     location because that would cause a drift over time, the pointer being
 5409     actually controlled by the Wayland compositor.
 5410     
 5411     So Xwayland needs to be able to send only relative raw events, hence
 5412     this API.
 5413     
 5414     Bump the ABI_XINPUT_VERSION minor version to reflect that API addition.
 5415     
 5416     v2: Actually avoid sending motion events (Peter)
 5417     v3: Keep sending raw emulated events with RAWONLY (Peter)
 5418     
 5419     Suggested-by: Peter Hutterer <peter.hutterer@who-t.net>
 5420     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5421     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 5422     Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1130
 5423 
 5424 commit 213129012bc0fe508a8a4180ffda1ef661894049
 5425 Author: Povilas Kanapickas <povilas@radix.lt>
 5426 Date:   Sun Dec 20 00:48:22 2020 +0200
 5427 
 5428     Xi: Deliver pointer emulated touch events to grabbing client
 5429     
 5430     Delivery of emulated events usually happens only to the owning client.
 5431     If there are grabs, only the grabbing client may receive these events.
 5432     
 5433     This logic does not work during the touch event replay in
 5434     DeactivatePointerGrab(), as the previous grab is no longer in the
 5435     listener queue of the touch, so the next owner gets whole emulated event
 5436     sequence. This may trigger implicit grabs. After replay,
 5437     DeactivatePointerGrab() will update the global grab without regard to
 5438     this new implicit grab, which leads to issues down the line.
 5439     
 5440     This change is effectively the same as 35e5a76cc1 except that the change
 5441     is limited to only emulated pointer events. Otherwise, in the case of a
 5442     device grab we end up not sending any touch events to clients that
 5443     selected XI_TouchOwnership event and should get touch events before they
 5444     get ownership of touch sequence.
 5445     
 5446     Fixes #7
 5447     
 5448     https://bugs.freedesktop.org/show_bug.cgi?id=96536
 5449 
 5450 commit 30e11535afb3c4efc3a5cef640de44c7cd9bb561
 5451 Author: Povilas Kanapickas <povilas@radix.lt>
 5452 Date:   Sun Dec 20 00:48:21 2020 +0200
 5453 
 5454     Revert "Xi: Use current device active grab to deliver touch events if any"
 5455     
 5456     This reverts commit 98e3db2ac43d4a3f13475cb160c8ce0155ac7d61.
 5457 
 5458 commit f682e0563f736ed2c2c612ed575e05b6e3db945e
 5459 Author: Povilas Kanapickas <povilas@radix.lt>
 5460 Date:   Mon Feb 8 05:21:29 2021 +0200
 5461 
 5462     dix: Send touch end to clients that do async grab without touch events
 5463     
 5464     If a XI2 client started listening to touches due to a selection and then
 5465     creates an active async grab that does not include touch events, then it
 5466     currently won't get the touch end event which will produce inconsistent
 5467     view of the pending touches.
 5468     
 5469     Note that we only need to consider touch listeners and can ignore
 5470     pointer emulation. Under XI2 if a active grab replaces a passive
 5471     implicit grab and the active grab does not include the button release
 5472     event, the client won't get it either.
 5473 
 5474 commit c7730cfe5577ebde006d408f502766d8c3a73670
 5475 Author: Olivier Fourdan <ofourdan@redhat.com>
 5476 Date:   Wed May 13 16:48:55 2020 +0200
 5477 
 5478     xwayland: Translate keyboard grabs on the root window
 5479     
 5480     When an X11 client issues an active grab on the keyboard, Xwayland
 5481     forward this to the Wayland compositor using the Xwayland specific
 5482     protocol "xwayland-keyboard-grab" if it can find the corresponding
 5483     Xwayland window.
 5484     
 5485     Some X11 clients (typically older games) however try to issue the
 5486     keyboard grab on the X11 root window, which has obviously no matching
 5487     Xwayland window. In such a case, the grab is simply ignored and the game
 5488     will not work as expected.
 5489     
 5490     To workaround that issue, if an X11 client issues a keyboard grab on the
 5491     root window, Xwayland will search for a toplevel window belonging to the
 5492     same X11 client that it can use as the grab window instead.
 5493     
 5494     This way, the grab can be forwarded to the Wayland compositor that can
 5495     either grant or deny the request based on the window and its internal
 5496     policies.
 5497     
 5498     The heuristic picks the first realized toplevel window belonging to the
 5499     client so that the Wayland compositor will send it the keyboard events,
 5500     and the Xserver grab mechanism will then take care of routing the events
 5501     to the expected X11 window by itself.
 5502     
 5503     v2: Make the test more clear (Dor Askayo <dor.askayo@gmail.com>)
 5504     
 5505     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5506     Acked-by: Jonas Ådahl <jadahl@gmail.com>
 5507     See-also: https://gitlab.gnome.org/GNOME/mutter/-/issues/1249
 5508 
 5509 commit 520e7a1310ddc25b30bcaa0ea3eeaa6c4d137c8c
 5510 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5511 Date:   Wed Jan 27 15:03:46 2021 -0800
 5512 
 5513     xquartz: Ensure that NSRunAlertPanel() is run on the main thread
 5514     
 5515     Fixes: https://github.com/XQuartz/XQuartz/issues/30
 5516     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5517 
 5518 commit 7d0bb7ed061458698ff27856976939b261e73b23
 5519 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5520 Date:   Wed Jan 27 13:46:02 2021 -0800
 5521 
 5522     xquartz: Remove support for older versions of libXplugin
 5523     
 5524     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5525 
 5526 commit 5e7c0762e6fdaefc9b8257c0f875432b1877c49e
 5527 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5528 Date:   Wed Jan 27 13:43:01 2021 -0800
 5529 
 5530     xquartz: Remove unused include of AvailabilityMacros.h from various sources
 5531     
 5532     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5533 
 5534 commit 59f22341a8b4cd468d6f37fb17dd7fde347e430b
 5535 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5536 Date:   Wed Jan 27 13:40:48 2021 -0800
 5537 
 5538     xquartz: Remove support for building for i386
 5539     
 5540     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5541 
 5542 commit aea15a76593f98205e44f20632178dc384c02d57
 5543 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5544 Date:   Wed Jan 27 13:35:17 2021 -0800
 5545 
 5546     xquartz: Remove support for Mountain Lion and earlier versions of macOS
 5547     
 5548     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5549 
 5550 commit c0b2d3e099a60f55b18ca9c30373000f12d40fe2
 5551 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5552 Date:   Wed Jan 27 13:33:22 2021 -0800
 5553 
 5554     xquartz: Remove support for Lion and earlier versions of macOS
 5555     
 5556     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5557 
 5558 commit cc9cf6f085be6e8264f925a11d67a12ad47a042b
 5559 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5560 Date:   Wed Jan 27 13:29:52 2021 -0800
 5561 
 5562     xquartz: Remove support for SnowLeopard and earlier versions of macOS
 5563     
 5564     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5565 
 5566 commit f699aac2ea2cf6a3e2d3bdcb2d8179e103de1d4e
 5567 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5568 Date:   Wed Jan 27 13:09:50 2021 -0800
 5569 
 5570     xquartz: Remove check for libdispatch now that we don't support pre-SnowLeopard
 5571     
 5572     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5573 
 5574 commit 5ad49102722274f53b9b011082d9e0f202fcd9a4
 5575 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5576 Date:   Wed Jan 27 13:23:18 2021 -0800
 5577 
 5578     xquartz: Remove support for Leopard and earlier versions of macOS
 5579     
 5580     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5581 
 5582 commit 6e6db055f8b517ae9d63351d4c00fd480cb6b54a
 5583 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5584 Date:   Wed Jan 27 13:18:35 2021 -0800
 5585 
 5586     xquartz: Remove support for Tiger and earlier versions of macOS
 5587     
 5588     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5589 
 5590 commit 20b86c4060c1d4fbc099675d5100fe17e4ac0147
 5591 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5592 Date:   Wed Jan 27 13:12:34 2021 -0800
 5593 
 5594     os: Remove support for Tiger and earlier versions of macOS
 5595     
 5596     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5597 
 5598 commit 74aef85bd88a1fdb22d445ad14975232a7bebdd7
 5599 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5600 Date:   Wed Jan 27 13:25:54 2021 -0800
 5601 
 5602     xquartz: Remove support for Panther and earlier versions of macOS
 5603     
 5604     Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 5605 
 5606 commit 0e272ac458fbd530787273073473e566b0ac306e
 5607 Author: Jim DeLaHunt <from.github@jdlh.com>
 5608 Date:   Mon Dec 11 00:08:52 2017 -0800
 5609 
 5610     Fix typo "XQaurtz" in Xquartz.man
 5611 
 5612 commit 5429791b1cf7f6cabf6c64aad0a4b1b5418253c9
 5613 Author: Olivier Fourdan <ofourdan@redhat.com>
 5614 Date:   Thu Jan 28 17:11:44 2021 +0100
 5615 
 5616     Revert "mi: Shortcut miDoCopy/miCopyArea based on clipList"
 5617     
 5618     This reverts commit f665a9c9e6c8643f3050378249db3088ae3057be.
 5619     
 5620     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5621     Acked-by: Martin Peres <martin.peres@mupuf.org>
 5622     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1108
 5623     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1128
 5624 
 5625 commit 3cdac5ba07a79761652d960e0e907601f82718bc
 5626 Author: Olivier Fourdan <ofourdan@redhat.com>
 5627 Date:   Wed Sep 9 10:51:24 2020 +0200
 5628 
 5629     mi: List extensions in usage message
 5630     
 5631     Not all extensions can be enabled or disabled at runtime, list the
 5632     extensions which can from the help message rather than on error only.
 5633     
 5634     v2:
 5635      * Print the header message in the ListStaticExtensions() (Peter
 5636        Hutterer)
 5637      * Do not export ListStaticExtensions() as Xserver API
 5638     
 5639     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5640     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 5641 
 5642 commit a81c98e42a954580ca0d43c89169dc2069c87b96
 5643 Author: Olivier Fourdan <ofourdan@redhat.com>
 5644 Date:   Tue Sep 8 18:34:48 2020 +0200
 5645 
 5646     mi: Don't log the full extension list on disable
 5647     
 5648     When enabling or disabling an extension which is not known to the
 5649     Xserver, it will log an error message and list the extensions it knows
 5650     about.
 5651     
 5652     That clutters the logs when the Xserver is Xwayland spawned by the
 5653     Wayland compositor who doesn't actually know the list of extensions
 5654     enabled at build time in the Xserver.
 5655     
 5656     Considering that disabling a non-existing extension is a no-op anyway,
 5657     list all the extensions available only when attempting to enable an
 5658     extension which the Xserver doesn't know about.
 5659     
 5660     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5661     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 5662 
 5663 commit 4341f1da728e4c67187b48865faf06c1312bcdff
 5664 Author: Misha Gusarov <dottedmag@dottedmag.net>
 5665 Date:   Wed Jan 27 12:37:51 2021 +0000
 5666 
 5667     xwayland: Add -verbose option as in xfree86
 5668     
 5669     Makes it easier to debug Xwayland problems.
 5670     
 5671     Signed-off-by: Misha Gusarov <dottedmag@dottedmag.net>
 5672 
 5673 commit 0148a15da1616a868d71abe1b56e3f28cc79533c
 5674 Author: Julien Cristau <jcristau@debian.org>
 5675 Date:   Wed Jan 6 10:20:53 2021 +0100
 5676 
 5677     compiler.h: don't define inb/outb and friends on mips
 5678     
 5679     The definition relies on IOPortBase, which is only ever set in
 5680     hw/xfree86/os-support/bsd/arm_video.c
 5681     
 5682     This caused build failures on linux/mips with GCC 10, due to this
 5683     change (from https://gcc.gnu.org/gcc-10/changes.html#c):
 5684     
 5685     "GCC now defaults to -fno-common. As a result, global variable accesses
 5686     are more efficient on various targets. In C, global variables with
 5687     multiple tentative definitions now result in linker errors. With
 5688     -fcommon such definitions are silently merged during linking."
 5689     
 5690     As a result anything including compiler.h would get its own definition
 5691     of IOPortBase and the linker would error out.
 5692 
 5693 commit f08ab719df921e1269691553daf56853380fb241
 5694 Author: Michel Dänzer <mdaenzer@redhat.com>
 5695 Date:   Thu Dec 17 18:58:28 2020 +0100
 5696 
 5697     ci: Test ninja dist in meson jobs
 5698     
 5699     While this isn't critical yet, it might become so at some point, so
 5700     let's make sure it keeps working.
 5701     
 5702     Don't set the PIGLIT/XTEST_DIR variables for ninja dist, testing XTS
 5703     once against each DDX is enough (as part of ninja test).
 5704     
 5705     Requires git in the docker image.
 5706     
 5707     v2:
 5708     * Drop /usr/local/bin/xkbcomp symlink, no longer needed with xkbcomp
 5709       1.4.1 (Peter Hutterer)
 5710 
 5711 commit 099eb6261cfb4a7a674ead467a8a9dfb2ee173d8
 5712 Author: Michel Dänzer <mdaenzer@redhat.com>
 5713 Date:   Fri Jan 15 18:32:30 2021 +0100
 5714 
 5715     ci: Build xkbcomp 1.4.1 for the docker image
 5716     
 5717     This is a requirement for testing meson dist in CI.
 5718 
 5719 commit 9716c4193fd4db7cdf3c6d7fb32d4ad2919cbe46
 5720 Author: Olivier Fourdan <ofourdan@redhat.com>
 5721 Date:   Fri Jan 22 10:29:29 2021 +0100
 5722 
 5723     xwayland: Add new pkg-config variable for listenfd
 5724     
 5725     Since commit b3f3d65e, xwayland now supports the command line option
 5726     "-listenfd" for passing file descriptors and marked "-listen" as
 5727     deprecated for this specific purpose.
 5728     
 5729     Add a new pkg-config variable "have_listenfd" to the xwayland.pc so that
 5730     compositors can know this is available and use listenfd in place of the
 5731     deprecated option.
 5732     
 5733     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5734     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 5735     Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
 5736 
 5737 commit a9269808f394955f213e34303c2c14fd61c35ab5
 5738 Author: Erik Kurzinger <ekurzinger@nvidia.com>
 5739 Date:   Thu Jan 7 07:00:33 2021 -0800
 5740 
 5741     xwayland: remove unused parameter of xwl_glamor_pixmap_get_wl_buffer
 5742     
 5743     There are currently no callers that make use of the "created" output parameter
 5744     of xwl_glamor_pixmap_get_wl_buffer. Remove it, along with the corresponding
 5745     argument of the associated EGL backend entrypoint.
 5746 
 5747 commit 532245798085a67b5ff906778f88373d5bcd2e4c
 5748 Author: Povilas Kanapickas <povilas@radix.lt>
 5749 Date:   Tue Dec 22 07:30:46 2020 +0200
 5750 
 5751     xfree86/inputtest: Drop extraneous linux-specific include
 5752     
 5753     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 5754 
 5755 commit 3ab3083cc20534c83a5a35f0af1f2779f8df0b7b
 5756 Author: Povilas Kanapickas <povilas@radix.lt>
 5757 Date:   Sun Dec 20 01:11:43 2020 +0200
 5758 
 5759     xi: Don't deliver emulated motion when there's no owner for touch end
 5760     
 5761     Pointer-emulated touch events should only be delivered to the client
 5762     that owns the sequence even if it's a core client that became the
 5763     effective owner of the sequency by selecting for pointer press and
 5764     movement.
 5765     
 5766     Currently the emulated events are delivered like this already (see
 5767     TouchResourceIsOwner() check in DeliverEmulatedMotionEvent()), except in
 5768     the case of TouchEnd, in which case the generated motion event is still
 5769     delivered to some client that's not necessarily the owner of the touch
 5770     sequence.
 5771     
 5772     We already know whether a touch sequence that is about to emulate a
 5773     pointer event has an owner, we just need to check that. This further
 5774     allows to simplify DeliverEmulatedMotionEvent() as it won't ever be
 5775     called for non-owned touch events.
 5776     
 5777     https://bugs.freedesktop.org/show_bug.cgi?id=60394
 5778     
 5779     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 5780 
 5781 commit 365cbbfc4b99f7d9937d1b8b61f1483556a5b57a
 5782 Author: Adam Jackson <ajax@redhat.com>
 5783 Date:   Fri Dec 18 09:36:30 2020 -0500
 5784 
 5785     os, shm: fcntl()'s third argument is integer, not pointer
 5786     
 5787     All of these uses were attempting to set FD_CLOEXEC, which happens to be
 5788     (1<<0). Since flags is going to be aligned in memory, its address is
 5789     never going to have the low bit set, so we were never actually setting
 5790     what we meant to.
 5791     
 5792     Fixes: xorg/xserver#1114
 5793 
 5794 commit 5e3900904ddc27f3d5580ce3a07929469d82fb5e
 5795 Author: Povilas Kanapickas <povilas@radix.lt>
 5796 Date:   Fri Dec 18 04:39:07 2020 +0200
 5797 
 5798     xfree86: Use different scroll increment than libinput in inputtest drv
 5799     
 5800     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 5801 
 5802 commit 58465a3dd90c3bc698ba9ebb2c4a516df6ff7dfd
 5803 Author: Povilas Kanapickas <povilas@radix.lt>
 5804 Date:   Thu Dec 17 03:08:06 2020 +0200
 5805 
 5806     xfree86: Add scroll axes to touch devices in inputtest driver
 5807     
 5808     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 5809 
 5810 commit 91a8013990a967bfd8c4145c4a79b86cc495a205
 5811 Author: Povilas Kanapickas <povilas@radix.lt>
 5812 Date:   Thu Dec 17 03:08:05 2020 +0200
 5813 
 5814     xfree86: Add support for pressure valuator axis in inputtest driver
 5815     
 5816     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 5817 
 5818 commit 742b87f7ee5abd1406a77ac1baacbc43759bd275
 5819 Author: Povilas Kanapickas <povilas@radix.lt>
 5820 Date:   Thu Dec 17 03:08:04 2020 +0200
 5821 
 5822     xfree86: Fix axis labels for PointerAbsolute input of inputtest driver
 5823     
 5824     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 5825 
 5826 commit e4a9f0bb4e36cffe4f7021bfa27753a9f42df2ff
 5827 Author: Olivier Fourdan <ofourdan@redhat.com>
 5828 Date:   Mon Dec 14 15:38:42 2020 +0100
 5829 
 5830     xwayland: Remove unneeded variable
 5831     
 5832     Just a small code cleanup, there is no need to allocate a variable only
 5833     to check the return value of eglInitialize().
 5834     
 5835     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5836     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 5837     Reviewed-by: Tony Lindgren <tony@atomide.com>
 5838 
 5839 commit 95be87db986470c8fce5ea91af0bbf3177f1de36
 5840 Author: Olivier Fourdan <ofourdan@redhat.com>
 5841 Date:   Mon Dec 14 10:06:12 2020 +0100
 5842 
 5843     xwayland: Refactor glamor EGL init
 5844     
 5845     Glamor requires at least big GL 2.1 or GLES2, therefore Xwayland tries
 5846     to initialize first GL and then GLES2 if that fails.
 5847     
 5848     It does that all in one single function which makes the code slightly
 5849     complicated, move the initialization of big-GL and GLES2 to separate
 5850     functions to help with readability of the code.
 5851     
 5852     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5853     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 5854     Reviewed-by: Tony Lindgren <tony@atomide.com>
 5855 
 5856 commit 65673b02ef28884da3267fe1be579c20e2cddfa6
 5857 Author: Tony Lindgren <tony@atomide.com>
 5858 Date:   Tue Dec 1 12:54:36 2020 +0200
 5859 
 5860     xwayland: fix GL version check for GLES only devices
 5861     
 5862     We currently bail out early for GLES only devices, and call
 5863     epoxy_gl_version() too early for GLES only that will make GLES only
 5864     devices return NULL for glGetString(GL_RENDERER).
 5865     
 5866     Let's also add a check to see if we need to recreate the context to
 5867     avoid pointless warnings for GLES only devices as suggested by
 5868     Olivier Fourdan <ofourdan@redhat.com>.
 5869     
 5870     Fixes: a506b4ec - xwayland: make context current to check GL version
 5871     Signed-off-by: Tony Lindgren <tony@atomide.com>
 5872 
 5873 commit 5d73a8b59e0d01d1ee4cb484e4b43563cec2eee9
 5874 Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 5875 Date:   Thu Dec 10 22:32:59 2020 +0100
 5876 
 5877     meson.build: KMS support also depends on dri2
 5878     
 5879     Kernel modesettings support also depends on dri2, see
 5880     ./hw/xfree86/drivers/modesetting/meson.build
 5881     
 5882     So update meson.build to reflect the changes made in configure.ac by
 5883     commit 9c81b8f5b5d7bc987f73e8ef01a81e61205e58ee
 5884     
 5885     Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 5886 
 5887 commit 8c0afc9eb26a0866301072dec30717885fd14305
 5888 Author: Povilas Kanapickas <povilas@radix.lt>
 5889 Date:   Sat Oct 10 02:09:05 2020 +0300
 5890 
 5891     xfree86: Implement a test input driver
 5892     
 5893     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 5894 
 5895 commit f95d81e88be07f43c91660e675d077ccd9ee47a9
 5896 Author: Olivier Fourdan <ofourdan@redhat.com>
 5897 Date:   Mon Dec 7 14:21:56 2020 +0100
 5898 
 5899     xwayland: Hold window buffer until released
 5900     
 5901     The window buffer mechanism would free the pixmap and its corresponding
 5902     Wayland buffer as soon as window buffers are disposed.
 5903     
 5904     Typically when the X11 window is unrealized, the current window buffer
 5905     is still used by the Wayland compositor and yet Xwayland will destroy
 5906     the buffer.
 5907     
 5908     As a matter of fact, Xwayland should not destroy the Wayland buffer
 5909     before the wl_buffer.release event is received.
 5910     
 5911     Add a reference counter to the window buffer similar to the to pixmap
 5912     reference counter to keep the buffer around until the release callback
 5913     is received.
 5914     
 5915     Increase that reference counter on the buffer which will be attached to
 5916     the surface, and drop that reference when receiving the release callback
 5917     notification.
 5918     
 5919     v2: Use a specific reference counter on the buffer rather than relying
 5920         on the pixmap refcnt (Michel Dänzer <mdaenzer@redhat.com>)
 5921     
 5922     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5923     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 5924     Acked-by: Martin Peres <martin.peres@mupuf.org>
 5925 
 5926 commit 85d8eac4bcf44c077bb82aaae10ae45feb9c4e72
 5927 Author: Olivier Fourdan <ofourdan@redhat.com>
 5928 Date:   Mon Dec 7 14:09:58 2020 +0100
 5929 
 5930     xwayland: Hold cursor buffer until released
 5931     
 5932     The cursor code would destroy the buffer as soon as the cursor is
 5933     unrealized on X11 side.
 5934     
 5935     Yet, the Wayland compositor may still be using the buffer as long as a
 5936     released callback has not been received.
 5937     
 5938     Increase the reference counter on the pixmap to hold a reference on the
 5939     pixmap when attaching it to the surface and use the new pixmap release
 5940     callback mechanism to release that reference when the buffer is
 5941     released.
 5942     
 5943     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5944     Acked-by: Martin Peres <martin.peres@mupuf.org>
 5945     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 5946 
 5947 commit 79afbd608b7e6abc5d6d0f7e1fb6e460500c7934
 5948 Author: Olivier Fourdan <ofourdan@redhat.com>
 5949 Date:   Thu Dec 10 10:10:05 2020 +0100
 5950 
 5951     xwayland: Factorize common cursor code
 5952     
 5953     The seat and tablet cursor functions are very similar, factorize the
 5954     commonalities to simplify the code and reduce the copy/paste.
 5955     
 5956     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 5957     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 5958 
 5959 commit 36e353bcf428c4e6a31292ffa749ea6395cba4a3
 5960 Author: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
 5961 Date:   Wed Nov 25 08:02:41 2020 +0100
 5962 
 5963     Remove check for useSIGIO option
 5964     
 5965     Commit 6a5a4e60373c1386b311b2a8bb666c32d68a9d99 removed the option to
 5966     configure useSIGIO option. Indeed, the xfree86 SIGIO support was
 5967     reworked to use internal versions of OsBlockSIGIO and OsReleaseSIGIO.
 5968     
 5969     As a result, useSIGIO is no longer needed and can dropped
 5970     
 5971     Fixes: 6a5a4e60 - Remove SIGIO support for input [v5]
 5972     Closes: xorg/xserver#1107
 5973     Reviewed-by: Adam Jackson <ajax@redhat.com>
 5974     Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
 5975     Signed-off-by: Mylène Josserand <mylene.josserand@free-electrons.com>
 5976     Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 5977 
 5978 commit 95539ab37baa1292d1f2daaa552f9741b0364cad
 5979 Author: Mariusz Ceier <mceier+freedesktop@gmail.com>
 5980 Date:   Wed Dec 2 12:29:15 2020 +0100
 5981 
 5982     xwayland: Replace LogMessage with LogMessageVerb
 5983     
 5984     LogMessage logs only when the XLOG_VERBOSITY is >= 1, but by default
 5985     XLOG_VERBOSITY is 0, so for example warning about deprected -listen
 5986     parameter is never shown when running "Xwayland -listen 32 -help".
 5987     
 5988     Signed-off-by: Mariusz Ceier <mceier+freedesktop@gmail.com>
 5989 
 5990 commit 74627d13c75cab7aa73c0e713feae0934e780ba0
 5991 Author: Michal Srb <msrb@suse.com>
 5992 Date:   Thu Jun 21 13:44:04 2018 +0200
 5993 
 5994     xkb: Fix heap overflow caused by optimized away min.
 5995     
 5996     Calling strlen on char[4] that does not need to contain '\0' is wrong and X
 5997     server may end up running into uninitialized memory.
 5998     
 5999     In addition GCC 8 is clever enough that it knows that strlen on char[4] can
 6000     return 0, 1, 2, 3 or cause undefined behavior. With this knowledge it can
 6001     optimize away the min(..., 4). In reality it can cause the memcpy to be called
 6002     with bigger size than 4 and overflow the destination buffer.
 6003     
 6004     Fixes: 83913de25d35 (xkb: Silence some compiler warnings)
 6005     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/288
 6006     Signed-off-by: Matt Turner <mattst88@gmail.com>
 6007 
 6008 commit 446ff2d3177087b8173fa779fa5b77a2a128988b
 6009 Author: Matthieu Herrb <matthieu@herrb.eu>
 6010 Date:   Thu Nov 12 19:15:07 2020 +0100
 6011 
 6012     Check SetMap request length carefully.
 6013     
 6014     Avoid out of bounds memory accesses on too short request.
 6015     
 6016     ZDI-CAN 11572 /  CVE-2020-14360
 6017     
 6018     This vulnerability was discovered by:
 6019     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 6020     
 6021     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 6022 
 6023 commit 87c64fc5b0db9f62f4e361444f4b60501ebf67b9
 6024 Author: Matthieu Herrb <matthieu@herrb.eu>
 6025 Date:   Sun Oct 11 17:05:09 2020 +0200
 6026 
 6027     Fix XkbSetDeviceInfo() and SetDeviceIndicators() heap overflows
 6028     
 6029     ZDI-CAN 11389 / CVE-2020-25712
 6030     
 6031     This vulnerability was discovered by:
 6032     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 6033     
 6034     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 6035 
 6036 commit 11652706b0aa7d2609b710db0bd1262c5f6ed596
 6037 Author: Michel Dänzer <mdaenzer@redhat.com>
 6038 Date:   Fri Nov 20 16:54:02 2020 +0100
 6039 
 6040     present/wnmd: Translate update region to screen space
 6041     
 6042     The region as passed in is in the source pixmap's coordinate space, so
 6043     intersecting it with the clipList (which is in screen space) resulted in
 6044     disappointment.
 6045     
 6046     Fixes Firefox popups such as the hamburger menu when using the EGL
 6047     backend.
 6048     
 6049     v2:
 6050     * Drop vblank->x/y_off from RegionTranslate call, since they're always
 6051       0 here (present_wnmd_check_flip rejects flips for x/y_off != 0).
 6052     
 6053     Reported-by: Robert Mader <robert.mader@posteo.de>
 6054     Tested-by: Robert Mader <robert.mader@posteo.de>
 6055     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 6056     Tested-by: Joakim Tjernlund <joakim.tjernlund@infinera.com> # v1
 6057 
 6058 commit b0530fe42286f340032566ce0bf22a5e9ddfe67f
 6059 Author: Michel Dänzer <mdaenzer@redhat.com>
 6060 Date:   Tue Jan 28 18:51:53 2020 +0100
 6061 
 6062     glx: Remove unused bswap_CARD64
 6063     
 6064     GCC warned about it:
 6065     
 6066     ../../../glx/indirect_dispatch_swap.c:85:1: warning: ‘bswap_CARD64’ defined but not used [-Wunused-function]
 6067        85 | bswap_CARD64(const void *src)
 6068           | ^~~~~~~~~~~~
 6069 
 6070 commit 3ce05a44f3d9b114af936f39e3f44552c5bf2c43
 6071 Author: Olivier Fourdan <ofourdan@redhat.com>
 6072 Date:   Thu Nov 26 14:39:32 2020 +0100
 6073 
 6074     modesetting: Fix build with DebugPresent() enabled
 6075     
 6076     By default, the macro DebugPresent() is a no-op but it can be enabled
 6077     at build time for debugging purpose.
 6078     
 6079     However, doing so prevents the code to build because one debug statement
 6080     tries to make use of a non-existent variable:
 6081     
 6082       present.c: In function ‘ms_present_queue_vblank’:
 6083       present.c:147:18: error: ‘vbl’ undeclared (first use in this function)
 6084         147 |                  vbl.request.sequence));
 6085             |                  ^~~
 6086       present.c:49:32: note: in definition of macro ‘DebugPresent’
 6087         49 | #define DebugPresent(x) ErrorF x
 6088            |                                ^
 6089     
 6090     Fix the build with DebugPresent() by removing the vbl variable from the
 6091     debug message.
 6092     
 6093     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6094 
 6095 commit 95b79aa907789a16f736097abe959e906f86f63a
 6096 Author: Erik Kurzinger <ekurzinger@nvidia.com>
 6097 Date:   Fri Nov 13 14:36:14 2020 -0800
 6098 
 6099     GLX: fix context render type queries
 6100     
 6101     Querying the GLX_RENDER_TYPE of a GLX context via glXQueryContext will
 6102     currently return the render type of the context's FB config, which is
 6103     a bitmask of GLX_RGBA_BIT / GLX_COLOR_INDEX_BIT / ... values. However,
 6104     this query should really return the render type that was specified
 6105     when creating the context, which is one of GLX_RGBA_TYPE /
 6106     GLX_COLOR_INDEX_TYPE / .... To enable this, save the render type when
 6107     creating a new context (defaulting to GLX_RGBA_TYPE if unspecified),
 6108     and then include this value in the context attributes sent to clients.
 6109 
 6110 commit 9c81b8f5b5d7bc987f73e8ef01a81e61205e58ee
 6111 Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 6112 Date:   Wed Jan 8 22:51:42 2020 +0100
 6113 
 6114     configure.ac: KMS support also depends on dri2
 6115     
 6116     Kernel modesettings support also depends on dri2, see
 6117     http://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/drivers/modesetting/Makefile.am#n46
 6118     
 6119     Fix #479
 6120     
 6121     Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
 6122     [Patch retrieved (with a small update of commit message) from:
 6123     https://git.buildroot.net/buildroot/tree/package/x11r7/xserver_xorg-server/1.20.6/0001-modesettings-needs-dri2.patch]
 6124     Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 6125 
 6126 commit 682167475c1930f80a68de58e522ac08dbb35fa8
 6127 Author: Böszörményi Zoltán <zboszor@pr.hu>
 6128 Date:   Thu Nov 14 09:29:20 2019 +0100
 6129 
 6130     Introduce and use BUS_USB
 6131     
 6132     With !155, the device bus ID received via udev is constructed
 6133     properly with the "usb:" prefix. But, it is not enough to
 6134     make the following line to work in Section "Device":
 6135     
 6136         BusID  "usb:0:1.2:1.0"
 6137     
 6138     Introduce BUS_USB, so the prefix can be distinguished from BUS_PCI
 6139     and check the supplied BusID value against device->attribs->busid
 6140     in xf86PlatformDeviceCheckBusID().
 6141     
 6142     Signed-off-by: Böszörményi Zoltán <zboszor@pr.hu>
 6143 
 6144 commit c0dcadad6c18b06ddc6e349d7c58bfccb715ff55
 6145 Author: Reza Arbab <arbab@linux.ibm.com>
 6146 Date:   Wed Mar 27 11:45:02 2019 -0500
 6147 
 6148     linux: Fix udev ID_PATH parsing for udl devices
 6149     
 6150     The ID_PATH for a udl device looks like this:
 6151     
 6152       $ udevadm info /dev/dri/card2 | grep -w ID_PATH
 6153       E: ID_PATH=pci-0000:00:14.0-usb-0:9.1:1.0
 6154     
 6155     The parsing added in 0816e8fca6194 ("linux: Make platform device probe
 6156     less fragile"), sets OdevAttributes::busid to "pci:0000:00:14.0", where
 6157     drmGetBusid() would have returned "3-9.1:1.0".
 6158     
 6159     Identifying this as a "pci:*" device eventually causes the vendor/device
 6160     id check in probeSingleDevice() to fail, because a USB controller isn't
 6161     a supported device:
 6162     
 6163       $ udevadm info --path=/devices/pci0000:00/0000:00:14.0 | grep -e VENDOR -e ID_PCI_CLASS
 6164       E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
 6165       E: ID_VENDOR_FROM_DATABASE=Intel Corporation
 6166     
 6167     Instead of parsing out "pci:0000:00:14.0" in this case, use
 6168     "usb:0:9.1:1.0" so the device probe will succeed.
 6169     
 6170     Fixes: 0816e8fca6194 ("linux: Make platform device probe less fragile")
 6171     Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
 6172 
 6173 commit af4622d3f90382225afb83e3896cb6f236f30c0a
 6174 Author: Aaron Plattner <aplattner@nvidia.com>
 6175 Date:   Fri Nov 20 19:43:25 2020 -0800
 6176 
 6177     modesetting: Add missing copyright notices
 6178     
 6179     I forgot to add these in commits 4fefe73fe, b6985d6b3, 245b9db03, and 4e670f128.
 6180     
 6181     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 6182 
 6183 commit 07e6935030c8f0a757bce0a90c54b59d8bf47df6
 6184 Author: Povilas Kanapickas <povilas@radix.lt>
 6185 Date:   Sat Oct 10 02:51:40 2020 +0300
 6186 
 6187     test/xi2: Fix mask size in XISelectEvents test
 6188     
 6189     XI2LASTEVENT identifies the bit number, not the mask size in bits. The
 6190     mask size in bits is XI2LASTEVENT + 1 and the mask size in bytes is
 6191     (XI2LASTEVENT + 8) / 8 or XI2MASKSIZE.
 6192 
 6193 commit f5220117e970a40c09babe199709bb2db69c4311
 6194 Author: Povilas Kanapickas <povilas@radix.lt>
 6195 Date:   Sat Oct 10 02:51:39 2020 +0300
 6196 
 6197     dix: Extract FreezeThisEventIfNeededForSyncGrab()
 6198 
 6199 commit 36f8dacc0652ddc5657e70942269f1f9e22710c6
 6200 Author: Povilas Kanapickas <povilas@radix.lt>
 6201 Date:   Sat Oct 10 02:51:37 2020 +0300
 6202 
 6203     dix: Extract ActivateGrabNoDeliver()
 6204 
 6205 commit 23a8b62d34344575f9df9d057fb74bfefa94a77b
 6206 Author: Povilas Kanapickas <povilas@radix.lt>
 6207 Date:   Sat Oct 10 02:51:36 2020 +0300
 6208 
 6209     dix: Store replayed event into GrabInfoRec struct as InternalEvent*
 6210 
 6211 commit 8bd8b3af1931629db548d39bb390edbef4315b0b
 6212 Author: Povilas Kanapickas <povilas@radix.lt>
 6213 Date:   Sat Oct 10 02:51:35 2020 +0300
 6214 
 6215     dix: Rename LISTENER_* to TOUCH_LISTENER_*
 6216 
 6217 commit f6e0bf68333f7edb02e3b937bc164f6591da2320
 6218 Author: Povilas Kanapickas <povilas@radix.lt>
 6219 Date:   Sat Oct 10 02:51:34 2020 +0300
 6220 
 6221     Xi: Make check_for_touch_selection_conflicts() more generic
 6222 
 6223 commit 56d720592155c55617728e8ddf1ba8192fe5d46c
 6224 Author: Povilas Kanapickas <povilas@radix.lt>
 6225 Date:   Sat Oct 10 02:51:33 2020 +0300
 6226 
 6227     dix: Extract DeliverDeviceClassesChangedEvent() utility function
 6228 
 6229 commit 5b0c5344b7131f0812bcbf070194adaa2175d150
 6230 Author: Povilas Kanapickas <povilas@radix.lt>
 6231 Date:   Sat Oct 10 02:51:32 2020 +0300
 6232 
 6233     dix: Extract CopySprite() utility
 6234 
 6235 commit acd819ac07bf66165f5d44af4a224f68c31bc30d
 6236 Author: Povilas Kanapickas <povilas@radix.lt>
 6237 Date:   Sat Oct 10 02:51:31 2020 +0300
 6238 
 6239     dix: Extract FixUpXI2DeviceEventFromWindow()
 6240 
 6241 commit bb7aab6afe8655fc40ecff49791889b6512bb6a0
 6242 Author: Jon Turney <jon.turney@dronecode.org.uk>
 6243 Date:   Sat Nov 21 15:45:49 2020 +0000
 6244 
 6245     hw/xwin: Fix building with -fno-common
 6246     
 6247     Provide an actual definition of noDriExtension where used, rather than a
 6248     tentative definition in a header, to fix compilation with -fno-common
 6249     (the default with gcc 10).
 6250 
 6251 commit d18dcecbe08a9ff22e43f12b6b7679a6ef1a6eb0
 6252 Author: Olivier Fourdan <ofourdan@redhat.com>
 6253 Date:   Mon Nov 2 10:24:45 2020 +0100
 6254 
 6255     xwayland: Clean up pending eglstream on pixmap destroy
 6256     
 6257     EGLStream implementation in Xwayland keeps a list of pending streams for
 6258     a window.
 6259     
 6260     If the windows's pixmap is destroyed while there is a pending stream,
 6261     the pending stream will point to freed memory once the callback is
 6262     triggered.
 6263     
 6264     Make sure to cancel the pending stream if there's one when the pixmap is
 6265     destroyed.
 6266     
 6267     v2:
 6268      * Use xorg_list_for_each_entry() instead of the safe variant (Michel
 6269        Dänzer <mdaenzer@redhat.com>)
 6270     
 6271     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6272     Tested-by: Karol Szuster <karolsz9898@gmail.com>
 6273     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
 6274     Closes https://gitlab.freedesktop.org/xorg/xserver/-/issues/1096
 6275 
 6276 commit 662b2bcb84d5782aff1b93732eb010b0b43e5706
 6277 Author: Olivier Fourdan <ofourdan@redhat.com>
 6278 Date:   Tue Sep 22 09:54:15 2020 +0200
 6279 
 6280     xwayland: Use the pixmap release callback with EGLStream
 6281     
 6282     Commit 77658741 - "xwayland: Add buffer release callback" added an API
 6283     to deal with Wayland buffer release callbacks.
 6284     
 6285     The EGLstream implementation has its own wl_buffer callback, move that
 6286     to the buffer release API instead so we don't have to deal with Wayland
 6287     buffers directly and match the other Xwayland pixmap backend
 6288     implementations.
 6289     
 6290     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6291     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 6292     Tested-by: Erik Kurzinger <ekurzinger@nvidia.com>
 6293 
 6294 commit e538601128c1a8bb4247a817da2bbb3f671811b3
 6295 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 6296 Date:   Sun Nov 1 15:52:48 2020 -0800
 6297 
 6298     int10: wrap entire V_ADDR_R* macros in parens for safer expansion
 6299     
 6300     Resolves warnings from Oracle Parfait static analyser:
 6301     
 6302     Error: Misleading macro
 6303        Misleading macro [misleading-macro]:
 6304           misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses
 6305             at line 392 of hw/xfree86/int10/generic.c.
 6306             '|' operator has higher precedence than ternary '?:' operator inside macro body at line 431
 6307             low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 431
 6308        Misleading macro [misleading-macro]:
 6309           misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses
 6310             at line 392 of hw/xfree86/int10/generic.c.
 6311             '<<' operator has higher precedence than ternary '?:' operator inside macro body at line 431
 6312             low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 431
 6313        Misleading macro [misleading-macro]:
 6314           misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses
 6315             at line 392 of hw/xfree86/int10/generic.c.
 6316             '<<' operator has higher precedence than ternary '?:' operator inside macro body at line 442
 6317             low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 442
 6318        Misleading macro [misleading-macro]:
 6319           misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses
 6320             at line 392 of hw/xfree86/int10/generic.c.
 6321             '<<' operator has higher precedence than ternary '?:' operator inside macro body at line 443
 6322             low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 443
 6323        Misleading macro [misleading-macro]:
 6324           misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses
 6325             at line 392 of hw/xfree86/int10/generic.c.
 6326             '|' operator has higher precedence than ternary '?:' operator inside macro body at line 443
 6327             low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 441
 6328        Misleading macro [misleading-macro]:
 6329           misleading evaluation of ternary '?:' operator in expansion of macro V_ADDR_RB due to missing parentheses
 6330             at line 392 of hw/xfree86/int10/generic.c.
 6331             '<<' operator has higher precedence than ternary '?:' operator inside macro body at line 443
 6332             low precedence ternary '?:' operator is hidden by expansion of macro V_ADDR_RB at line 443
 6333     
 6334     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
 6335 
 6336 commit a6574033f464c7cde02bce8f1b130ff6b2b2d9eb
 6337 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 6338 Date:   Sun Nov 1 15:45:08 2020 -0800
 6339 
 6340     xkb: always set *mask_rtrn in XkbVirtualModsToReal
 6341     
 6342     Resolves warning from Oracle Parfait static analyser:
 6343     
 6344     Error: Uninitialised memory
 6345        Uninitialised memory variable [uninitialised-mem-var] (CWE 457):
 6346           Possible access to uninitialised memory referenced by variable 'mask'
 6347             at line 721 of xkb/XKBMisc.c in function 'XkbUpdateKeyTypeVirtualMods'.
 6348             Path in callee avoiding write at line 720
 6349               mask allocated at line 718
 6350     
 6351     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
 6352 
 6353 commit 034e792662a1c0c6ab52190e457b1f017bec01c6
 6354 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 6355 Date:   Sun Nov 1 13:55:59 2020 -0800
 6356 
 6357     dmx: example code should set a good example
 6358     
 6359     Resolves warning from Oracle Parfait static analyser:
 6360     
 6361     Error: Unchecked result
 6362        Unchecked result [unchecked-result-call-X]:
 6363           Unchecked return value from call to XOpenDisplay. Value display must be ch
 6364     ecked to ensure this function was successful.
 6365             at line 73 of hw/dmx/examples/xbell.c in function 'main'.
 6366     
 6367     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
 6368 
 6369 commit d00594ebc7941a5491ad5583d6890ab7dc2ffc43
 6370 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 6371 Date:   Sun Nov 1 13:38:21 2020 -0800
 6372 
 6373     AddInputDevice: only need to check once if we failed to calloc dev
 6374     
 6375     Resolves warning from Oracle Parfait static analyser:
 6376     
 6377     Warning: Impossible or redundant condition
 6378        Impossible or redundant condition [impossible-redundant-condition]:
 6379           Condition 'dev != NULL' of branch is determined by previous branch
 6380             at line 270 of dix/devices.c in function 'AddInputDevice'.
 6381               Condition 'dev != NULL' from this branch implies following branch is always true at line 262
 6382     
 6383     Fixes: commit 493ad83323
 6384     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
 6385 
 6386 commit 250db8708ac7ab11356b42faa493b6f1ba753013
 6387 Author: Michel Dänzer <mdaenzer@redhat.com>
 6388 Date:   Tue Sep 15 11:49:20 2020 +0200
 6389 
 6390     xwayland: Add and hook up test script
 6391     
 6392     It runs XTS via piglit on (non-rootless) Xwayland on weston using the
 6393     headless backend.
 6394     
 6395     Xwayland might use glamor if enabled in the build, but we're making sure
 6396     it uses software rendering.
 6397     
 6398     v2:
 6399     * Use weston-info to wait for weston to be ready, instead of just a
 6400       fixed sleep. (Martin Peres)
 6401     v3:
 6402     * Build wayland 1.18 & weston 9.0 locally, since the packages in Debian
 6403       buster are too old for current Xwayland.
 6404     
 6405     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 6406 
 6407 commit 821399a9c920323e4934a2fd6375b86a151fa83c
 6408 Author: Michel Dänzer <mdaenzer@redhat.com>
 6409 Date:   Wed Nov 11 12:45:36 2020 +0100
 6410 
 6411     ci: Base docker image on Debian buster instead of testing
 6412     
 6413     By its nature, testing incurs a risk of breaking something every time
 6414     we bump the image.
 6415     
 6416     This requires building wayland-protocols locally, since the package in
 6417     buster is too old for current Xwayland.
 6418     
 6419     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 6420 
 6421 commit ab73c16930d67e5c80a23727804850406309b787
 6422 Author: Michel Dänzer <mdaenzer@redhat.com>
 6423 Date:   Wed Sep 16 16:32:02 2020 +0200
 6424 
 6425     ci: Update to the latest templates
 6426     
 6427     They now ensure the image is up to date in forked projects, and we no
 6428     longer need to reconstruct the image name.
 6429     
 6430     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 6431 
 6432 commit 852d6d49109a3f0a9a73c86f5d5165d2c8dc5cbe
 6433 Author: Michel Dänzer <mdaenzer@redhat.com>
 6434 Date:   Thu Nov 12 12:19:09 2020 +0100
 6435 
 6436     ci: Explicitly list packages needed to build xserver
 6437     
 6438     Instead of relying on apt-get build-dep.
 6439     
 6440     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 6441 
 6442 commit 8469935fe26659219560f425c7b35d564ad77324
 6443 Author: Michel Dänzer <mdaenzer@redhat.com>
 6444 Date:   Thu Nov 12 12:01:45 2020 +0100
 6445 
 6446     ci: Use a variable for ephemeral packages
 6447     
 6448     So that they only need to be listed once.
 6449     
 6450     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 6451 
 6452 commit 996ba1b99a7212471d3c24359056c412de70c28d
 6453 Author: Michel Dänzer <mdaenzer@redhat.com>
 6454 Date:   Wed Nov 11 18:22:28 2020 +0100
 6455 
 6456     ci: Remove rendercheck Git tree
 6457     
 6458     Noticed this was missing while making changes in this area.
 6459     
 6460     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 6461 
 6462 commit 8fc84a00254f642947397276e14d7740f502895d
 6463 Author: Michel Dänzer <mdaenzer@redhat.com>
 6464 Date:   Wed Nov 11 19:02:50 2020 +0100
 6465 
 6466     ci: Set GIT_STRATEGY=none for the container build job
 6467     
 6468     It doesn't need a full checkout of the xserver Git tree, so this can
 6469     save some time and resources.
 6470     
 6471     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 6472 
 6473 commit 9a7515943f5a9b70567512cdc48cb2f688b3284b
 6474 Author: Michel Dänzer <mdaenzer@redhat.com>
 6475 Date:   Wed Sep 16 12:55:35 2020 +0200
 6476 
 6477     ci: Use $FDO_CI_CONCURRENT if set
 6478     
 6479     To take advantage of more than 4 CPU cores available to the container.
 6480     
 6481     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 6482 
 6483 commit 28ed4b95e90fb225fc32cfdce16df603ab600fcd
 6484 Author: Olivier Fourdan <ofourdan@redhat.com>
 6485 Date:   Tue Nov 10 10:40:05 2020 +0100
 6486 
 6487     xwayland: Add a man page
 6488     
 6489     Xwayland was missing a man page, add one.
 6490     
 6491     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6492     Reviewed-by: Martin Peres <martin.peres@mupuf.org>
 6493 
 6494 commit d14cef853af52408e7ddba31b72cf5ac14389754
 6495 Author: Olivier Fourdan <ofourdan@redhat.com>
 6496 Date:   Tue Nov 10 10:02:39 2020 +0100
 6497 
 6498     xwayland: Do not list option "-eglstream" if not supported
 6499     
 6500     As Xwayland is usually spawned by the Wayland server/compositor, its
 6501     command line options are not always adjustable.
 6502     
 6503     Yet, if EGLStream is not supported in a given Xwayland build, the option
 6504     will do nothing (yet we must still accept it otherwise Xwayland would
 6505     refuse to run if the Wayland compositor uses it).
 6506     
 6507     If Xwayland was built without support for EGLStream, there is not point
 6508     in showing the option in the help message though.
 6509     
 6510     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6511     Reviewed-by: Martin Peres <martin.peres@mupuf.org>
 6512 
 6513 commit d163f938a00c177c5ff28e779993f18ee69476d4
 6514 Author: Olivier Fourdan <ofourdan@redhat.com>
 6515 Date:   Tue Nov 10 09:53:57 2020 +0100
 6516 
 6517     xwayland: Add help entry for -shm
 6518     
 6519     The command line options "-shm" is used to instruct Xwayland to prefer
 6520     shared-memory for passing buffers to the Wayland server, rather than
 6521     using glamor and DRI3.
 6522     
 6523     The option was there from the beginning, yet not documented in the
 6524     "-help" message.
 6525     
 6526     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6527     Reviewed-by: Martin Peres <martin.peres@mupuf.org>
 6528 
 6529 commit df3aa4922fd7e256169e541188b724f67ca948e1
 6530 Author: Michel Dänzer <mdaenzer@redhat.com>
 6531 Date:   Fri Nov 6 10:14:19 2020 +0100
 6532 
 6533     xwayland: Make window_get_client_toplevel non-recursive
 6534     
 6535     Noticed while reading the code.
 6536     
 6537     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 6538 
 6539 commit 899cebb76ab7754fea49f7babcd64a7e94052cc8
 6540 Author: Olivier Fourdan <ofourdan@redhat.com>
 6541 Date:   Tue Oct 27 16:33:55 2020 +0100
 6542 
 6543     configure: Build hashtable for Xres and glvnd
 6544     
 6545     With autoconf, hashtable support is built along with Xres support.
 6546     
 6547     Yet, glvnd also use it, so when disabling Xres from configure, the
 6548     build will fail at link time because hashtable functions are not
 6549     available.
 6550     
 6551     Untie the build of hashtable from Xres support, just like meson build
 6552     does.
 6553     
 6554     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6555     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1091
 6556 
 6557 commit 606ba7fc51e5420646f75c4e672fbe61eb7c7e6e
 6558 Author: Olivier Fourdan <ofourdan@redhat.com>
 6559 Date:   Thu Nov 5 18:35:54 2020 +0100
 6560 
 6561     xwayland: Create an xwl_window for toplevel only
 6562     
 6563     One general assumption in Xwayland is that the xwl_window remains the
 6564     same for all the child windows of the toplevel window.
 6565     
 6566     When mapping a new X11 window, ensure_surface_for_window() checks for an
 6567     existing xwl_window by using xwl_window_get() which will just check for
 6568     the registered xwl_window for the window.
 6569     
 6570     That means that a client mapping a child window of an existing window
 6571     with a xwl_window will get another different xwl_window.
 6572     
 6573     If an X11 client issues a Present request on the parent window, hence
 6574     placed underneath its child window of the same size, the Wayland
 6575     compositor may not send the frame callback event for the parent's
 6576     Wayland surface which is reckoned to be not visible, obscured behind
 6577     the other Wayland surface for the child X11 window.
 6578     
 6579     That bug affects some games running in wine which may get 1 fps because
 6580     the repaint occurs only on timeout with a long interval (as with, e.g.
 6581     https://bugs.winehq.org/show_bug.cgi?id=47066)
 6582     
 6583     Fix ensure_surface_for_window() by using xwl_window_from_window() which
 6584     will walk the window tree, so that a child window won't get another
 6585     xwl_window than its parent.
 6586     
 6587     https://gitlab.freedesktop.org/xorg/xserver/-/issues/1099
 6588     See-also: https://bugs.winehq.org/show_bug.cgi?id=47066
 6589     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6590     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 6591 
 6592 commit ffd02d9b26bd560849c407a6dd4f5c4d7d2c1736
 6593 Author: Olivier Fourdan <ofourdan@redhat.com>
 6594 Date:   Mon Nov 2 15:44:31 2020 +0100
 6595 
 6596     xwayland: non-rootless requires the XDG-WM-Base protocol
 6597     
 6598     When running non-rootless, Xwayland requires that the Wayland compositor
 6599     supports the XDG-WM-Base protocol.
 6600     
 6601     Check for XDG-WM-Base protocol support at startup and exit cleanly if
 6602     missing rather than segfaulting later in ensure_surface_for_window()
 6603     while trying to use xdg_wm_base_get_xdg_surface().
 6604     
 6605     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6606     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 6607     Reviewed-by: Simon Ser <contact@emersion.fr>
 6608 
 6609 commit 7a7e55c5c1d6461a9f4d9a4e0129c1c6e1fd3d66
 6610 Author: Alex Goins <agoins@nvidia.com>
 6611 Date:   Mon Oct 5 18:19:52 2020 -0500
 6612 
 6613     glamor: Update pixmap's devKind when making it exportable
 6614     
 6615     When making a pixmap exportable, glamor will currently create a temporary
 6616     exported pixmap backed by a GBM bo, with the devKind updated to the stride of
 6617     the bo. However, when the backing of the exported pixmap is swapped into the
 6618     original, the devKind of the original is not updated.
 6619     
 6620     Some GBM bos may get implicitly padded, in which case the devKind of the pixmap
 6621     will not match the stride of the backing bo. For example, an 800x600 pixmap will
 6622     have a devKind of 3200, but the bo's stride will be 3328. This can cause
 6623     corruption with PRIME, when the sink uses the wrong stride to display the shared
 6624     pixmap.
 6625     
 6626     This commit changes glamor_make_pixmap_exportable() to update the devKind of the
 6627     original pixmap after it swaps exported pixmap's backing into it, keeping
 6628     everything consistent.
 6629     
 6630     Fixes issue #1018.
 6631     
 6632     Signed-off-by: Alex Goins <agoins@nvidia.com>
 6633     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 6634     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 6635 
 6636 commit affc47452507d7e4605fd8c9a16db078e4f2aea2
 6637 Author: Adam Jackson <ajax@redhat.com>
 6638 Date:   Tue Sep 22 16:13:00 2020 -0400
 6639 
 6640     xwayland: Drop the separate refcount for the xwl_pixmap
 6641     
 6642     Instead, bump the pixmap's refcount at the bottom of post_damage to
 6643     reflect the compositor's hold on the buffer, and "destroy" the pixmap in
 6644     the buffer release callback (which will dec the pixmap's refcount and
 6645     free if necessary).
 6646     
 6647     Signed-off-by: Adam Jackson <ajax@redhat.com>
 6648 
 6649 commit 4e670f1281ad75c5673b6ac75645036d810da8d9
 6650 Author: Aaron Plattner <aplattner@nvidia.com>
 6651 Date:   Fri Oct 25 00:06:40 2019 -0700
 6652 
 6653     modesetting: Add CTM RandR property
 6654     
 6655     When the "CTM" (color transform matrix) modesetting property is available,
 6656     create a corresponding RandR property.
 6657     
 6658     To match the format of the property available in the amdgpu driver, expose it as
 6659     an array of 18 32-bit XA_INTEGERs representing a 3x3 matrix in row-major order,
 6660     where each entry is a S31.32 sign-magnitude fixed-point number with the
 6661     fractional part listed first.
 6662     
 6663     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 6664     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
 6665     Reviewed-by: James Jones <jajones@nvidia.com>
 6666 
 6667 commit 245b9db03a1e1189b992409283e3d88b5d56e62d
 6668 Author: Aaron Plattner <aplattner@nvidia.com>
 6669 Date:   Thu Oct 24 13:46:35 2019 -0700
 6670 
 6671     modesetting: Use GAMMA_LUT when available
 6672     
 6673     If the kernel exposes GAMMA_LUT and GAMMA_LUT_SIZE properties and the size is
 6674     not what the server has pre-configured for the crtc, free the old gamma ramp
 6675     memory allocated by the server and replace it with new allocations of the
 6676     appropriate size.
 6677     
 6678     In addition, when GAMMA_LUT is available, use drmModeCreatePropertyBlob() and
 6679     drmModeObjectSetProperty() to set the gamma ramp rather than using the legacy
 6680     drmModeCrtcSetGamma() function.
 6681     
 6682     Add a new option "UseGammaLUT" to allow disabling this new behavior and falling
 6683     back to drmModeCrtcSetGamma() unconditionally.
 6684     
 6685     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 6686 
 6687 commit b6985d6b3fb3e9ae36f638b0fd65cfad3d4bbd46
 6688 Author: Aaron Plattner <aplattner@nvidia.com>
 6689 Date:   Thu Oct 24 13:41:39 2019 -0700
 6690 
 6691     modesetting: Query properties even in non-atomic mode
 6692     
 6693     Modeset properties can be set even when ms->atomic_modeset is disabled by using
 6694     the drmModeObjectSetProperty() function.
 6695     
 6696     This will be necessary in a later change in order to set the GAMMA_LUT and CTM
 6697     properties.
 6698     
 6699     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 6700 
 6701 commit 4fefe73feaee31a992b284963599d63feb598807
 6702 Author: Aaron Plattner <aplattner@nvidia.com>
 6703 Date:   Tue Oct 22 10:06:30 2019 -0700
 6704 
 6705     modesetting: Store property values in drmmode_prop_info_rec
 6706     
 6707     A later change will need to read the value of the GAMMA_LUT_SIZE property.
 6708     
 6709     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 6710 
 6711 commit 1626e9fa77c0d3715d38ededd43656aa6d942bd9
 6712 Author: Peter Harris <pharris@opentext.com>
 6713 Date:   Wed Sep 30 16:01:06 2020 -0400
 6714 
 6715     glx: set errorValue when returning GLXBadFBConfig
 6716     
 6717     client->errorValue is already set in validGlxFBConfig. Set it in
 6718     __glXDisp_CreateContextAttribsARB for consistency.
 6719     
 6720     Signed-off-by: Peter Harris <pharris@opentext.com>
 6721 
 6722 commit 96d19e898acb56d8fc6e6febbc6498f67cdd66a0
 6723 Author: Adam Jackson <ajax@redhat.com>
 6724 Date:   Thu Sep 24 17:08:27 2020 -0400
 6725 
 6726     glx: Implement GLX_EXT_get_drawable_type
 6727     
 6728     Trivial extension to let the client query whether this is a window
 6729     pixmap or pbuffer. Mostly for Mesa's convenience when setting up
 6730     drawable state, but plausibly useful for apps and middleware as well.
 6731     
 6732     Upstream OpenGL Registry merge request:
 6733     
 6734     https://github.com/KhronosGroup/OpenGL-Registry/pull/425
 6735 
 6736 commit c15dd0ba4893f79f7181e783cb1ba404edca917a
 6737 Author: Bernhard Übelacker <bernhardu@mailbox.org>
 6738 Date:   Sun Sep 27 18:03:48 2020 +0200
 6739 
 6740     os: Fix instruction pointer written in xorg_backtrace
 6741     
 6742     The address retrieved in "pip.start_ip" is not necessarily the same
 6743     address as unw_get_proc_name finds as nearest symbol and returns in "off".
 6744     Therefore using "pip.start_ip + off" is not reliable, at least
 6745     visible in the binaries from the Debian repository.
 6746     
 6747     Bug-Debian: https://bugs.debian.org/971088
 6748     
 6749     Signed-off-by: Bernhard Übelacker <bernhardu@mailbox.org>
 6750 
 6751 commit acc581c96f16fe3c097dfd0da4ff33f7b104597d
 6752 Author: Dor Askayo <dor.askayo@gmail.com>
 6753 Date:   Sat Sep 26 15:54:45 2020 +0300
 6754 
 6755     dri3: Add missing libdrm dependency in Makefile.am
 6756     
 6757     Fixes: 0ce93e5ba774 "dri3: Include dix-config.h instead of
 6758                          xorg-config.h"
 6759     Signed-off-by: Dor Askayo <dor.askayo@gmail.com>
 6760 
 6761 commit efb3abddd49fb75bd6d0e31046fed43d258c93da
 6762 Author: Kishore Kadiyala <kishore.kadiyala@intel.com>
 6763 Date:   Sat Sep 19 01:28:14 2020 +0530
 6764 
 6765     modesetting: keep going if a modeset fails on EnterVT
 6766     
 6767     There was a time when setting a mode on a CRTC would not depend on the
 6768     associated connector's state. If a mode had been set successfully once,
 6769     it would mean it would work later on.
 6770     
 6771     This changed with the introduction of new connectors type that now
 6772     require a link training sequence (DP, HDMI 2.0), and that means that
 6773     some events may have happened while the X server was not master that
 6774     would then prevent the mode from successfully be restored to its
 6775     previous state.
 6776     
 6777     This patch relaxes the requirement that all modes should be restored on
 6778     EnterVT, or the entire X-Server would go down by allowing modesets to
 6779     fail (with some warnings). If a modeset fails, the CRTC will be
 6780     disabled, and a RandR event will be sent for the desktop environment to
 6781     fix the situation as well as possible.
 6782     
 6783     Additional patches might be needed to make sure that the user would
 6784     never be left with all screens black in some scenarios.
 6785     
 6786     v2 (Martin Peres):
 6787      - whitespace fixes
 6788      - remove the uevent handling (it is done in a previous patch)
 6789      - improve the commit message
 6790      - reduce the size of the patch by not changing lines needlessly
 6791      - return FALSE if one modeset fails in ignore mode
 6792      - add comments/todos to explain why we do things
 6793      - disable the CRTCs that failed the modeset
 6794     
 6795     Signed-off-by: Kishore Kadiyala <kishore.kadiyala@intel.com>
 6796     Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
 6797     Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
 6798     Tested-by: Kishore Kadiyala <kishore.kadiyala@intel.com>
 6799     Closes: #1010
 6800 
 6801 commit 293cf660c95d7ba36510bcc4114d7fd5c5f3801c
 6802 Author: Martin Peres <martin.peres@linux.intel.com>
 6803 Date:   Fri Apr 24 18:06:16 2020 +0300
 6804 
 6805     modesetting: check the kms state on EnterVT
 6806     
 6807     Normally, we would receive a uevent coming from Linux's DRM subsystem,
 6808     which would trigger the check for disappearing/appearing resources.
 6809     However, this event is not received when X is not master (another VT
 6810     is selected), and so the userspace / desktop environment would not be
 6811     notified about the changes that happened while X wasn't master.
 6812     
 6813     To fix the issue, this patch forces a refresh on EnterVT by splitting
 6814     the kms-checking code from the uevent handling into its own (exported)
 6815     function called drmmode_update_kms_state. This function is then called
 6816     from both the uevent-handling function, and on EnterVT right before
 6817     restoring the modes.
 6818     
 6819     Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
 6820     Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
 6821     Acked-by: Kishore Kadiyala <kishore.kadiyala@intel.com>
 6822     Tested-by: Kishore Kadiyala <kishore.kadiyala@intel.com>
 6823 
 6824 commit 4c00369024c9754e670fca37804711fef2980e2f
 6825 Author: Povilas Kanapickas <povilas@radix.lt>
 6826 Date:   Tue Sep 22 20:53:49 2020 +0300
 6827 
 6828     Bump input minor ABI due to addition of input event drain callback
 6829     
 6830     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 6831 
 6832 commit 5eb985e3531b69d3ddc4dc0d4b69b4280b1626f8
 6833 Author: Povilas Kanapickas <povilas@radix.lt>
 6834 Date:   Thu Sep 17 00:55:17 2020 +0300
 6835 
 6836     mi: Add a callback to notify driver about input event submission
 6837     
 6838     This is useful for mock input drivers that control the server in
 6839     integration tests. Given that input submission happens on a different
 6840     thread than processing, it's otherwise impossible for the driver to
 6841     synchronize with the completion of the processing of submitted events.
 6842     
 6843     Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
 6844 
 6845 commit a5f439dcd21b4fda093cb382bb1a758b434a1444
 6846 Author: Olivier Fourdan <ofourdan@redhat.com>
 6847 Date:   Mon Sep 14 15:39:10 2020 +0200
 6848 
 6849     xwayland: Remove pending stream reference when freeing
 6850     
 6851     The EGLStream backend keeps a queue of pending streams for each Xwayland
 6852     window.
 6853     
 6854     However, when this pending queue is freed, the corresponding private
 6855     data may not be cleared (typically if the pixmap for this window has
 6856     changed before the compositor finished attaching the consumer for the
 6857     window's pixmap's original eglstream), leading to a use-after-free and a
 6858     crash when trying to use that data as the window pixmap.
 6859     
 6860     Make sure to clear the private data when the pending stream is freed.
 6861     
 6862     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1055
 6863     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6864     Tested-by: Karol Szuster <karolsz9898@gmail.com>
 6865     Reviewed-by: Adam Jackson <ajax@redhat.com>
 6866 
 6867 commit 0b86c0c36241989d7e9662d007c5297fe22ae8b5
 6868 Author: Olivier Fourdan <ofourdan@redhat.com>
 6869 Date:   Mon Sep 14 14:35:22 2020 +0200
 6870 
 6871     xwayland: Add a flag for n-buffers in EGL backend
 6872     
 6873     Using multiple window buffers crashes with EGLStream, which does not
 6874     need it anyway as this is handled through EGL directly.
 6875     
 6876     Add a flag to the EGL backend to indicate whether it would benefit from
 6877     multiple buffers and use this in the get_buffer() function.
 6878     
 6879     Thanks to Adam Jackson <ajax@redhat.com> for pointing out that issue
 6880     with EGLStream.
 6881     
 6882     v2: Fix logical test (Adam Jackson <ajax@redhat.com>)
 6883     
 6884     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6885     Reviewed-by: Adam Jackson <ajax@redhat.com>
 6886 
 6887 commit ae84f14fb554e5ad54c51c2e6d52ab4a68bf7a0a
 6888 Author: Olivier Fourdan <ofourdan@redhat.com>
 6889 Date:   Mon Sep 14 14:26:34 2020 +0200
 6890 
 6891     xwayland: Add a flag to expose EGL backend features
 6892     
 6893     The present flip does not work with the EGLStream backend. Similarly,
 6894     the EGLStream backend does not require the buffer to be flushed as
 6895     eglSwapBuffers() should take care of this.
 6896     
 6897     Instead of actually checking the backend in use in the present code,
 6898     add a flag in the form of a bitfield to the EGL backend to indicate
 6899     its features and requirements.
 6900     
 6901     This should not introduce any functional change.
 6902     
 6903     v2: Fix logical test (Adam Jackson <ajax@redhat.com>)
 6904     
 6905     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 6906     Reviewed-by: Adam Jackson <ajax@redhat.com>
 6907 
 6908 commit 239ebdc9e447d4f836d0c2aa6068c6064fffb46c
 6909 Author: Greg V <greg@unrelenting.technology>
 6910 Date:   Tue Sep 15 17:41:04 2020 +0300
 6911 
 6912     xwayland: use drmGetNodeTypeFromFd for checking if a node is a render one
 6913     
 6914     Major/minor numbers are a.. major (ha) source of pain in FreeBSD porting.
 6915     In this case, Xwayland was thinking that /dev/dri/card0 is already a render node,
 6916     because the st_rdev on FreeBSD was passing the Linux-style check,
 6917     and because of the assumption, acceleration would fail because
 6918     various ioctls like AMDGPU_INFO would be denied on the non-render node.
 6919     
 6920     Switch to libdrm's function that already works correctly on all platforms.
 6921     
 6922     Signed-off-by: Greg V <greg@unrelenting.technology>
 6923     Reviewed-by: Emmanuel Vadot <manu@FreeBSD.org>
 6924 
 6925 commit add3df2001a2eadc41c47683f50fdc0fd8b14964
 6926 Author: Michel Dänzer <mdaenzer@redhat.com>
 6927 Date:   Tue Sep 15 11:43:16 2020 +0200
 6928 
 6929     Consolidate fourcc.h
 6930     
 6931     Move the copy in hw/xfree86/common to include/, and remove the one in
 6932     hw/kdrive/src/.
 6933     
 6934     Fixes DIX glamor code including an xfree86 DDX header.
 6935 
 6936 commit 62d8c1cc69e273199c9eb23e87b8631d32c56d33
 6937 Author: Michel Dänzer <mdaenzer@redhat.com>
 6938 Date:   Tue Sep 15 11:41:34 2020 +0200
 6939 
 6940     present: Include dix-config.h instead of xorg-config.h
 6941     
 6942     This is DIX code.
 6943 
 6944 commit 0ce93e5ba774a53459bac8c23016c5d3232038eb
 6945 Author: Michel Dänzer <mdaenzer@redhat.com>
 6946 Date:   Tue Sep 15 11:38:55 2020 +0200
 6947 
 6948     dri3: Include dix-config.h instead of xorg-config.h
 6949     
 6950     This is DIX code.
 6951 
 6952 commit 97f858d336a85cb49de6275918793c773d5d9db1
 6953 Author: Uday Kiran Pichika <pichika.uday.kiran@intel.com>
 6954 Date:   Wed Aug 19 16:20:15 2020 +0530
 6955 
 6956     modesetting: Allow users to opt-in VRR support
 6957     
 6958     Fetch VariableRefresh option value from X conf file for
 6959     modesetting backend DDX driver. This option defaults to false,
 6960     and must be set to "true" in conf file for variable refresh
 6961     support in the DDX driver.
 6962     
 6963     Signed-off-by: Uday Kiran Pichika <pichika.uday.kiran@intel.com>
 6964 
 6965 commit ede2c32ce116138ddf081932ea2c33bd6f4b6990
 6966 Author: Uday Kiran Pichika <pichika.uday.kiran@intel.com>
 6967 Date:   Thu Jun 18 16:07:33 2020 +0530
 6968 
 6969     modesetting: Detect changes to the _VARIABLE_REFRESH window properties
 6970     
 6971     Window wrappers gets the notification when the window
 6972     properties changes. These wrappers are mainly used to
 6973     keep track of per-window _VARIABLE_REFRESH property values.
 6974     
 6975     These changes have been ported from AMDGPU
 6976     
 6977     Signed-off-by: Uday Kiran Pichika <pichika.uday.kiran@intel.com>
 6978 
 6979 commit 9823ea4ed24db76b1e61d69a8da8f7599857d02a
 6980 Author: Uday Kiran Pichika <pichika.uday.kiran@intel.com>
 6981 Date:   Thu Jun 18 11:31:31 2020 +0530
 6982 
 6983     modesetting: Lay the foundation for enabling VRR
 6984     
 6985     These changes have been ported from AMD GPU DDX driver.
 6986     
 6987     This patch adds support for setting the CRTC variable refresh property
 6988     for suitable windows flipping via the Present extension.
 6989     
 6990     In order for a window to be suitable for variable refresh it must have
 6991     the _VARIABLE_REFRESH property set by the MESA and inform Modesetting
 6992     DDX driver with window property updates.
 6993     
 6994     Then the window must pass the checks required to be suitable for
 6995     Present extension flips - it must cover the entire X screen and no
 6996     other window may already be flipping. And also DRM connector should
 6997     be VRR capable.
 6998     
 6999     With these conditions met every CRTC for the X screen will have their
 7000     variable refresh property set to true.
 7001     
 7002     Kernel Changes to support this feature in I915 driver is under development.
 7003     
 7004     Tested with DOTA2, Xonotic and custom GLX apps.
 7005     
 7006     Signed-off-by: Uday Kiran Pichika <pichika.uday.kiran@intel.com>
 7007 
 7008 commit 42878790708c2a9ecdbb81f635e5e3a34842e34c
 7009 Author: Michel Dänzer <mdaenzer@redhat.com>
 7010 Date:   Fri Sep 4 13:03:35 2020 +0200
 7011 
 7012     present/wnmd: Remove no-op present_wnmd_flip_destroy
 7013     
 7014     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 7015 
 7016 commit 59c40b0ee7cd864dd098f5ac41bbfe96e7bd0e9b
 7017 Author: Michel Dänzer <mdaenzer@redhat.com>
 7018 Date:   Fri Sep 4 13:02:04 2020 +0200
 7019 
 7020     present/wnmd: Remove dead present_wnmd_can_window_flip
 7021     
 7022     present_can_window_flip is only called from the Xorg modesetting
 7023     driver, never in WNMD mode.
 7024     
 7025     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 7026 
 7027 commit b6b1161fd7ac409156fb69439897bcabdeacf393
 7028 Author: Michel Dänzer <mdaenzer@redhat.com>
 7029 Date:   Fri Sep 4 12:50:00 2020 +0200
 7030 
 7031     present/wnmd: Remove dead check from present_wnmd_check_flip
 7032     
 7033     present_wnmd_toplvl_pixmap_window returns a window with the same window
 7034     pixmap, so the check could never fail.
 7035     
 7036     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 7037 
 7038 commit 4c25356d6cd908c5030c70e712076dff318ac00d
 7039 Author: Michel Dänzer <mdaenzer@redhat.com>
 7040 Date:   Thu Aug 27 18:36:15 2020 +0200
 7041 
 7042     xwayland: Check window pixmap in xwl_present_check_flip2
 7043     
 7044     We can only flip if the window pixmap matches that of the toplevel
 7045     window. Doing so regardless could cause the toplevel window pixmap to
 7046     get destroyed while it was still referenced by the window, resulting in
 7047     use-after-free and likely a crash.
 7048     
 7049     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1033
 7050     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 7051     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 7052 
 7053 commit 7ac303c7b1e3b1be79ba3648e217798683e65a99
 7054 Author: Michel Dänzer <mdaenzer@redhat.com>
 7055 Date:   Fri Aug 28 11:57:39 2020 +0200
 7056 
 7057     present/wnmd: Can't use page flipping for windows clipped by children
 7058     
 7059     Noticed this was missing while working on the following fix.
 7060     
 7061     v2:
 7062     * Dropped present_wnmd_can_window_flip hunk (that function is never
 7063       called, will be cleaned up in a follow-up MR).
 7064     
 7065     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> # v1
 7066     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 7067 
 7068 commit 727df0a74e75982f4352f0a3e574fcf6db3372f7
 7069 Author: Roman Gilg <subdiff@gmail.com>
 7070 Date:   Mon Aug 10 19:14:28 2020 +0200
 7071 
 7072     xwayland: Replace need_rotate boolean with simple check on xdg-output
 7073     
 7074     The need_rotate variable is only used once anymore and had semantics which lead
 7075     to errors in the past. In particular when negated we are dealing with a double
 7076     negation.
 7077     
 7078     The variable gets replaced with a simple check on the xdg-output directly.
 7079     
 7080     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7081 
 7082 commit da791ed9fdc715dcbe73c60a4c4ab2d385ab28e4
 7083 Author: Roman Gilg <subdiff@gmail.com>
 7084 Date:   Thu Aug 13 16:55:03 2020 +0200
 7085 
 7086     Revert "xserver: Fix a typo"
 7087     
 7088     This reverts commit 427f8bc00981703abe3153b6da575faa69fe2748.
 7089     
 7090     When receiving an output update for the mode size we need to rotate the stored
 7091     width and height values if and only if we have an xdg-output for this output
 7092     since in this case the stored values describe the output's size in logical
 7093     space, i.e. rotated.
 7094     
 7095     The here reverted commit made a code change with which we would not rotate though
 7096     when an xdg-output was available since in this case the need_rotate variable was
 7097     set to False what caused in the check afterwards the first branch to execute.
 7098 
 7099 commit 92f4a9ade3c97bda833b0e10f10856b2542f793c
 7100 Author: Roman Gilg <subdiff@gmail.com>
 7101 Date:   Mon Aug 10 19:01:52 2020 +0200
 7102 
 7103     xwayland: Switch width and height argument order
 7104     
 7105     That is just a small style-change to the output_get_new_size function. The
 7106     function before did take first the height and then the width argument, what
 7107     is unusual since resolutions are normally named the other way around, for
 7108     example 1920x1080. Also compare the update_screen_size function.
 7109     
 7110     Therefore change the order of arguments for output_get_new_size.
 7111     
 7112     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7113 
 7114 commit 1805383d9eb17ef8ac159366c684ac85b3d53731
 7115 Author: Roman Gilg <subdiff@gmail.com>
 7116 Date:   Mon Aug 10 18:58:56 2020 +0200
 7117 
 7118     xwayland: simplify output_get_new_size function
 7119     
 7120     We can just read out the xdg_output field of the provided xwl_output to check
 7121     if a rotation is necessary or not.
 7122     
 7123     This makes the function easier to understand. Additionally some documentation
 7124     is added.
 7125     
 7126     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7127 
 7128 commit 919f1f46fc67dae93b2b3f278fcbfc77af34ec58
 7129 Author: Michel Dänzer <mdaenzer@redhat.com>
 7130 Date:   Mon Aug 31 12:10:43 2020 +0200
 7131 
 7132     xfree86: Take second reference for SavedCursor in xf86CursorSetCursor
 7133     
 7134     The same pointer is kept in CurrentCursor as well, therefore two
 7135     RefCursor calls are needed.
 7136     
 7137     Fixes use-after-free after switching VTs.
 7138     
 7139     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1067
 7140 
 7141 commit 2902b78535ecc6821cc027351818b28a5c7fdbdc
 7142 Author: Matthieu Herrb <matthieu@herrb.eu>
 7143 Date:   Tue Aug 18 14:55:01 2020 +0200
 7144 
 7145     Fix XRecordRegisterClients() Integer underflow
 7146     
 7147     CVE-2020-14362 ZDI-CAN-11574
 7148     
 7149     This vulnerability was discovered by:
 7150     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 7151     
 7152     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 7153 
 7154 commit 144849ea27230962227e62a943b399e2ab304787
 7155 Author: Matthieu Herrb <matthieu@herrb.eu>
 7156 Date:   Tue Aug 18 14:52:29 2020 +0200
 7157 
 7158     Fix XkbSelectEvents() integer underflow
 7159     
 7160     CVE-2020-14361 ZDI-CAN 11573
 7161     
 7162     This vulnerability was discovered by:
 7163     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 7164     
 7165     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 7166 
 7167 commit c940cc8b6c0a2983c1ec974f1b3f019795dd4cff
 7168 Author: Matthieu Herrb <matthieu@herrb.eu>
 7169 Date:   Tue Aug 18 14:49:04 2020 +0200
 7170 
 7171     Fix XIChangeHierarchy() integer underflow
 7172     
 7173     CVE-2020-14346 / ZDI-CAN-11429
 7174     
 7175     This vulnerability was discovered by:
 7176     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 7177     
 7178     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 7179 
 7180 commit f7cd1276bbd4fe3a9700096dec33b52b8440788d
 7181 Author: Matthieu Herrb <matthieu@herrb.eu>
 7182 Date:   Tue Aug 18 14:46:32 2020 +0200
 7183 
 7184     Correct bounds checking in XkbSetNames()
 7185     
 7186     CVE-2020-14345 / ZDI 11428
 7187     
 7188     This vulnerability was discovered by:
 7189     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 7190     
 7191     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 7192 
 7193 commit 1cccb486d48a5d2e7649836b993805bb65dc09e3
 7194 Author: Michel Dänzer <mdaenzer@redhat.com>
 7195 Date:   Tue Jul 28 18:40:47 2020 +0200
 7196 
 7197     present/wnmd: Execute copies at target_msc-1 already
 7198     
 7199     It always takes one update cycle for the copy to become visible on the
 7200     host windowing system, so waiting for the target MSC resulted in 1 cycle
 7201     delay.
 7202     
 7203     We re-use the idle list for copies which were executed but need their
 7204     completion event sent.
 7205     
 7206     Fixes black seams when resizing the "Builder" sub-window of
 7207     
 7208      GDK_BACKEND=x11 gtk4-demo
 7209     
 7210     on Xwayland (see
 7211     https://gitlab.gnome.org/GNOME/mutter/-/issues/1290#note_873557).
 7212     
 7213     Unfortunately, this cannot completely fix the seams with apps which
 7214     queue up multiple frames in advance, since there's always at least one
 7215     queued frame corresponding to the old window size. But it should at
 7216     least help a little in that case as well.
 7217     
 7218     v2:
 7219     * Bug fix: Don't update exec_msc in present_wnmd_check_flip_window.
 7220       (Roman Gilg)
 7221     * Use exec_msc = target_msc - 1 instead of exec_msc--, and add a
 7222       comment, for clarity.
 7223     v3:
 7224     * Drop exec_msc = target_msc again in present_wnmd_execute.
 7225     * present_execute_copy should never set vblank->queued in
 7226       present_wnmd_execute now, so replace that branch with an assertion.
 7227       (Roman Gilg)
 7228     
 7229     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 7230     Tested-by: Roman Gilg <subdiff@gmail.com>
 7231 
 7232 commit d14ea667feccf085c7d66a7c63f380975e07af66
 7233 Author: Michel Dänzer <mdaenzer@redhat.com>
 7234 Date:   Tue Jul 28 18:53:45 2020 +0200
 7235 
 7236     present/wnmd: Move up present_wnmd_queue_vblank
 7237     
 7238     Allowing it to be called from more functions than before. No functional
 7239     change.
 7240     
 7241     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 7242     Tested-by: Roman Gilg <subdiff@gmail.com>
 7243 
 7244 commit b0b3159abd8001fa3f6dfc44a288a95a62aa5cf6
 7245 Author: Michel Dänzer <mdaenzer@redhat.com>
 7246 Date:   Wed Aug 12 17:38:33 2020 +0200
 7247 
 7248     present: Add present_vblank::exec_msc field
 7249     
 7250     For tracking the MSC when the present can be executed separately from
 7251     the target MSC.
 7252     
 7253     Allows removing the requeue field instead, plus more later.
 7254     
 7255     v2:
 7256     * Rename wait_msc → exec_msc (Roman Gilg)
 7257     * Use exec_msc = target_msc instead of exec_msc++, for clarity.
 7258     * Bug fix: Set exec_msc = target_msc also if present_flip returned
 7259       false in present_execute.
 7260     v3:
 7261     * Set exec_msc = target_msc also if present_wnmd_flip returned
 7262       false in present_wnmd_execute, for consistency.
 7263     v4:
 7264     * Specifically check for exec_msc == crtc_msc + 1 in
 7265       present_execute_wait/copy, to avoid re-introducing
 7266       https://bugs.freedesktop.org/show_bug.cgi?id=94596 .
 7267     
 7268     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 7269     Tested-by: Roman Gilg <subdiff@gmail.com>
 7270 
 7271 commit 4c92dea952f7fed19857904f0f552900257ef4b9
 7272 Author: Michel Dänzer <mdaenzer@redhat.com>
 7273 Date:   Tue Jul 28 18:48:42 2020 +0200
 7274 
 7275     present: Move flip target_msc adjustment out of present_vblank_create
 7276     
 7277     Preparation for different handling between SCMD & WNMD. No functional
 7278     change intended.
 7279     
 7280     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 7281     Tested-by: Roman Gilg <subdiff@gmail.com>
 7282 
 7283 commit 032af35657aa95c6bbdb74ff8c72e535b9b56cfa
 7284 Author: Michel Dänzer <mdaenzer@redhat.com>
 7285 Date:   Fri Jul 24 18:21:05 2020 +0200
 7286 
 7287     glamor: Fix glamor_poly_fill_rect_gl xRectangle::width/height handling
 7288     
 7289     (Using GLSL 1.30 or newer)
 7290     
 7291     The width/height members of xRectangle are unsigned, but they were
 7292     being interpreted as signed when converting to floating point for the
 7293     vertex shader, producing incorrect drawing for values > 32767.
 7294     
 7295     v2:
 7296     * Use separate GL_UNSIGNED_SHORT vertex attribute for width/height.
 7297       (Eric Anholt)
 7298     
 7299     Reviewed-by: Eric Anholt <eric@anholt.net>
 7300 
 7301 commit b22b4da980b763af5124f26627cad93983542d6b
 7302 Author: Adam Jackson <ajax@redhat.com>
 7303 Date:   Fri Aug 14 19:19:46 2020 -0400
 7304 
 7305     glamor: Fix debugging callback setup on GLES
 7306     
 7307     You will not find GL_ARB_* extensions in a GLES context by definition,
 7308     the droid you're looking for is named GL_KHR_debug.
 7309     
 7310     Reviewed-by: Eric Anholt <eric@anholt.net>
 7311     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 7312 
 7313 commit 5c20e4b834145f590c68dbc98e33c7d3d710001a
 7314 Author: Olivier Fourdan <ofourdan@redhat.com>
 7315 Date:   Wed Jun 3 10:17:13 2020 +0200
 7316 
 7317     xwayland: Disable the MIT-SCREEN-SAVER extension when rootless
 7318     
 7319     Xwayland is just a Wayland client, no X11 screensaver should be
 7320     expected to work reliably on Xwayland when running rootless because
 7321     Xwayland cannot grab the input devices so it has no way to actually
 7322     lock the screen managed by the Wayland compositor.
 7323     
 7324     Turn off the screensaver on Xwayland when running rootless by setting
 7325     the screensaver timeout and interval and their default values to zero
 7326     and disable the MIT-SCREEN-SAVER extension.
 7327     
 7328     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1051
 7329     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 7330     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 7331     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 7332 
 7333 commit aac28e162e5108510065ad4c323affd6deffd816
 7334 Author: Matthieu Herrb <matthieu@herrb.eu>
 7335 Date:   Sat Jul 25 19:33:50 2020 +0200
 7336 
 7337     fix for ZDI-11426
 7338     
 7339     Avoid leaking un-initalized memory to clients by zeroing the
 7340     whole pixmap on initial allocation.
 7341     
 7342     This vulnerability was discovered by:
 7343     Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 7344     
 7345     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 7346     Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
 7347 
 7348 commit 9d8e7c4828747f6bba438528c6ef6e2577b50522
 7349 Author: Ignacio Casal Quinteiro <qignacio@amazon.com>
 7350 Date:   Thu Jul 16 10:19:43 2020 +0200
 7351 
 7352     XKB: Add debug key actions for grabs & window tree
 7353     
 7354     Replicate 7d2543a3cb3089241982ce4f8984fd723d5312a1 but for
 7355     all types of X servers
 7356 
 7357 commit c24eb7e31e750d2b9ba8f1b72f53b07a57495395
 7358 Author: Roman Gilg <subdiff@gmail.com>
 7359 Date:   Tue Jul 28 20:24:50 2020 +0200
 7360 
 7361     xwayland: Simplify Present event handling code
 7362     
 7363     Instead of optionally return early when an event is aborted and potentially
 7364     clean it up in there we can only optionally inform Present if not aborted and
 7365     afterwards clean it up if required.
 7366     
 7367     Saves some lines of code and conditional branches.
 7368     
 7369     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7370 
 7371 commit 06901e12c07691112b91b26b0c2000f8971e48b5
 7372 Author: Jon Turney <jon.turney@dronecode.org.uk>
 7373 Date:   Thu Jun 4 13:25:45 2020 +0100
 7374 
 7375     meson: Also ignore kms, kms_udev, hal options on Cygwin
 7376 
 7377 commit 4c2d1fe0454ca2b7c13e600a31f6733705c1c7b9
 7378 Author: Jon Turney <jon.turney@dronecode.org.uk>
 7379 Date:   Wed Jul 29 20:32:49 2020 +0100
 7380 
 7381     hw/xwin: Update for renames in xserver/output API
 7382     
 7383     Update commit ea47af87 renaming master_pixmap to primary_pixmap in
 7384     struct PixmapRec.
 7385 
 7386 commit 9fbd3e43dd9e13700df96b508c3d97f77e2b9f7e
 7387 Author: Huacai Chen <chenhc@lemote.com>
 7388 Date:   Sun Jul 5 05:59:58 2020 -0400
 7389 
 7390     linux: Fix platform device probe for DT-based PCI
 7391     
 7392     On a DT-base PCI platform, the sysfs path of vga device is like this:
 7393     /sys/devices/platform/bus@10000000/1a000000.pci/pci0000:00/0000:00:11.0/0000:04:00.0.
 7394     
 7395     Then the ID_PATH from udev is platform-1a000000.pci-pci-0000:04:00.0 and
 7396     the BusID will be pci-0000:04:00.0, which causes Xorg start fail. This
 7397     is because config_udev_odev_setup_attribs() use strstr() to search the
 7398     first "pci-" in ID_PATH. To fix this, we implement a strrstr() function
 7399     and use it to search the last "pci-" in ID_PATH, which can get a correct
 7400     BusID.
 7401     
 7402     Signed-off-by: Huacai Chen <chenhc@lemote.com>
 7403 
 7404 commit 591916ea9e7a77f68f436b4a541402d9deadfe64
 7405 Author: Roman Gilg <subdiff@gmail.com>
 7406 Date:   Fri Jul 24 12:21:37 2020 +0200
 7407 
 7408     present: Check valid region in window mode flips
 7409     
 7410     For Pixmap flips to have well defined outcomes the window must be contained by
 7411     the valid region if such region was specified.
 7412     
 7413     The valid region is inserted as an argument to the check in window mode.
 7414     Setting this argument is missing in screen mode as well but we ignore it for now
 7415     and only add it to window mode.
 7416     
 7417     It seems there are none or only very few clients actually making use of valid
 7418     regions at the moment. For simplicity we therefore just check if a valid region
 7419     was set by the client and in this case do never flip, independently of the
 7420     window being contained by the region or not.
 7421     
 7422     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7423 
 7424 commit bf794bd7bfa3bdcf7de95ce237eb50ecc6ec11d2
 7425 Author: Roman Gilg <subdiff@gmail.com>
 7426 Date:   Tue Jul 14 14:32:25 2020 +0200
 7427 
 7428     present: Remove superfluous set abort flip function in window mode
 7429     
 7430     The function is never called from present_screen.c in contrast to the behavior
 7431     in screen mode.
 7432     
 7433     In present_wnmd.c we can simply remove the function which does an unnecessary
 7434     check of the property before setting it and directly set the property at the
 7435     two locations the function was called previously.
 7436     
 7437     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7438 
 7439 commit ab880b8b9e8d67a05fcb085097c94bbddf7dcb95
 7440 Author: Roman Gilg <subdiff@gmail.com>
 7441 Date:   Sun Jul 12 13:42:31 2020 +0200
 7442 
 7443     present: Idle vblanks any time in window mode
 7444     
 7445     With the newly introduced separate API method for idling a presented Pixmap in
 7446     window mode we can simplify the logic by allowing calls to it at any point in
 7447     time.
 7448     
 7449     This is done by setting the flip_idler flag if the Pixmap was idled before
 7450     being presented.
 7451     
 7452     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7453 
 7454 commit 932c6baca274f57beab51cd0dff1f7fa934e0ed0
 7455 Author: Roman Gilg <subdiff@gmail.com>
 7456 Date:   Sat Jul 11 19:15:46 2020 +0200
 7457 
 7458     present: Notify via distinct API functions in window mode
 7459     
 7460     Notifying Present about events' states was done prior with the single function
 7461     present_wnmd_event_notify just like in screen mode. But it is more intelligible
 7462     if at least in window mode we make use of three different functions with names
 7463     that directly indicate what their purpose is:
 7464     
 7465     * present_wnmd_event_notify only for queued events feedback.
 7466     * present_wnmd_flip_notify for when a presentation occured (flip).
 7467     * present_wnmd_idle_notify for when the Pixmap of the event can be reused.
 7468     
 7469     This is an API-breaking change in regards to window mode. DDX written against
 7470     the previous version won't work anymore. It is assumed that there only exists
 7471     the XWayland DDX at the moment using the window mode such that this is not an
 7472     issue for the overall ecosystem.
 7473     
 7474     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7475 
 7476 commit f8211095c3d94307225318902598e8f79d038f26
 7477 Author: Roman Gilg <subdiff@gmail.com>
 7478 Date:   Sat Feb 15 01:58:22 2020 +0100
 7479 
 7480     xwayland: Rename present event lists
 7481     
 7482     Rename the lists release_queue to release_list and event_list to
 7483     wait_list.
 7484     
 7485     The prior names release_queue and event_list were ambiguous: in both are event-
 7486     like vblanks which can be removed from the lists in random order. In the
 7487     release_queue can be flips that are already released but still wait for the
 7488     sync or frame callback but normally the release comes later. In the event_list
 7489     are queued events waiting for a later msc.
 7490     
 7491     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7492 
 7493 commit 0db326e5ca3dd244dda502c8261801c04ff792ab
 7494 Author: Roman Gilg <subdiff@gmail.com>
 7495 Date:   Wed Jul 8 10:24:41 2020 +0200
 7496 
 7497     xwayland: Remove unused xwl_screen entry
 7498     
 7499     In xwl_present_window an xwl_screen entry was declared but never actually used.
 7500     
 7501     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7502 
 7503 commit 495bf63a7df066672d9d44dedeb1f49658a247d8
 7504 Author: Alex Goins <agoins@nvidia.com>
 7505 Date:   Thu Jul 2 20:03:06 2020 -0500
 7506 
 7507     randr: Re-add removed NULL checks to xf86RandR12.c
 7508     
 7509     Commit 1e3f9ea1 removed some NULL checks from xf86RandR12.c, on the premise that
 7510     they can't be reached unless RandR has already been initialized. For threesuch
 7511     calls, that's not true:
 7512     
 7513     xf86Crtc.c::xf86CrtcScreenInit():
 7514     
 7515         if (c == config->num_crtc) {
 7516             xf86RandR12SetRotations(screen, RR_Rotate_0 | RR_Rotate_90 |
 7517                                     RR_Rotate_180 | RR_Rotate_270 |
 7518                                     RR_Reflect_X | RR_Reflect_Y);
 7519             xf86RandR12SetTransformSupport(screen, TRUE);
 7520         }
 7521         else {
 7522             xf86RandR12SetRotations(screen, RR_Rotate_0);
 7523             xf86RandR12SetTransformSupport(screen, FALSE);
 7524         }
 7525     
 7526     xf86Crtc.c::xf86CrtcCloseScreen():
 7527     
 7528         xf86RandR12CloseScreen(screen);
 7529     
 7530     This change adds checks back to xf86RandR12Set{Rotations,TransformSupport}() and
 7531     xf86RandR12CloseScreen(), checking that xf86RandR12KeyRec has been registered.
 7532     Without this, X will hit an assert that causes it to abort.
 7533     
 7534     Signed-off-by: Alex Goins <agoins@nvidia.com>
 7535 
 7536 commit 8eeff5d7880c6885ee6f206355599f13d739afa7
 7537 Author: Alex Goins <agoins@nvidia.com>
 7538 Date:   Thu Jul 2 20:12:43 2020 -0500
 7539 
 7540     randr: Check rrPrivKey in RRHasScanoutPixmap()
 7541     
 7542     RRHasScanoutPixmap() is called from xf86CheckHWCursor(), regardless of whether
 7543     or not RandR has been initialized.
 7544     
 7545     As mentioned in commit 4226c6d, it's possible that RandR has not been
 7546     initialized if the server is configured with Xinerama and there is more than one
 7547     X screen. Calling rrGetScrPriv when RandR isn't initialized causes an assertion
 7548     failure that aborts the server:
 7549     
 7550           Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion
 7551           key->initialized' failed.
 7552     
 7553     Just as in commit 4226c6d, fix the problem by checking
 7554     dixPrivateKeyRegistered(rrPrivKey) before calling rrGetScrPriv.
 7555     
 7556     Signed-off-by: Alex Goins <agoins@nvidia.com>
 7557 
 7558 commit 6172bd2b41a7ce158b9052af3e373318e5e4381c
 7559 Author: Alex Goins <agoins@nvidia.com>
 7560 Date:   Thu Jul 2 18:39:11 2020 -0500
 7561 
 7562     randr: Check rrPrivKey before autobinding GPU screens
 7563     
 7564     RRProviderAutoConfigGpuScreen() is called from outside RandR, so there is no
 7565     guarantee that RandR has been initialized when it is called.
 7566     
 7567     As mentioned in commit 4226c6d, it's possible that RandR has not been
 7568     initialized if the server is configured with Xinerama and there is more than one
 7569     X screen. Calling rrGetScrPriv when RandR isn't initialized causes an assertion
 7570     failure that aborts the server:
 7571     
 7572       Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion
 7573       key->initialized' failed.
 7574     
 7575     Just as in commit 4226c6d, fix the problem by checking
 7576     dixPrivateKeyRegistered(rrPrivKey) before calling rrGetScrPriv.
 7577     
 7578     Signed-off-by: Alex Goins <agoins@nvidia.com>
 7579 
 7580 commit e33453f9111b21e4814d628e6ae00bc7b200f404
 7581 Author: Michel Dänzer <mdaenzer@redhat.com>
 7582 Date:   Fri Jul 10 18:56:42 2020 +0200
 7583 
 7584     xwayland: Handle NULL xwl_seat in xwl_seat_can_emulate_pointer_warp
 7585     
 7586     This can happen e.g. with weston's headless backend.
 7587     
 7588     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 7589 
 7590 commit ddb86e94c07a269dfc9cd80543f9f6a2c3e934a2
 7591 Author: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
 7592 Date:   Sat Jul 11 19:47:40 2020 +0200
 7593 
 7594     xwayland: Remove harmless duplicated #include
 7595 
 7596 commit a137dd5f79d272a57c6704143dc9c25a9b59c927
 7597 Author: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
 7598 Date:   Sat Jul 11 19:34:59 2020 +0200
 7599 
 7600     xwayland: Use memfd_create() when available
 7601     
 7602     This (so-far) Linux-only API lets users create file descriptors purely
 7603     in memory, without any backing file on the filesystem and the race
 7604     condition which could ensue when unlink()ing it.
 7605     
 7606     It also allows seals to be placed on the file, ensuring to every other
 7607     process that we won’t be allowed to shrink the contents, potentially
 7608     causing a SIGBUS when they try reading it.
 7609     
 7610     This patch is best viewed with the -w option of git log -p.
 7611     
 7612     This is a port of this commit from Weston:
 7613     https://gitlab.freedesktop.org/wayland/weston/-/commit/deae98ef45e060b8412a5edd195fb0c7c14f0321
 7614     
 7615     Fixes #848.
 7616     
 7617     Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
 7618 
 7619 commit ba0e789b912671c724a21b3a30291247718bcf7d
 7620 Author: Lyude Paul <lyude@redhat.com>
 7621 Date:   Tue Jul 14 18:32:39 2020 -0400
 7622 
 7623     xwayland: Store xwl_tablet_pad in its own private key
 7624     
 7625     When a slave device causes the master virtual pointer device to change
 7626     device types, the device's private data pointer
 7627     (device->public.devicePrivate) is also changed to match the type of the
 7628     slave device. This can be a problem though, as tablet pad devices will
 7629     set the device's private data pointer to their own xwl_tablet_pad
 7630     struct. This can cause us to dereference the pointer as the wrong type,
 7631     and result in a segfault:
 7632     
 7633     Thread 1 "Xwayland" received signal SIGSEGV, Segmentation fault.
 7634     wl_proxy_marshal (proxy=0x51, opcode=opcode@entry=0) at src/wayland-client.c:792
 7635     792             va_start(ap, opcode);
 7636     (gdb) bt
 7637     0  wl_proxy_marshal (proxy=0x51, opcode=opcode@entry=0) at
 7638       src/wayland-client.c:792
 7639     1  0x00005610b27b6c55 in wl_pointer_set_cursor (hotspot_y=0,
 7640       hotspot_x=0, surface=0x0, serial=<optimized out>, wl_pointer=<optimized
 7641       out>) at /usr/include/wayland-client-protocol.h:4610
 7642     2  xwl_seat_set_cursor (xwl_seat=xwl_seat@entry=0x5610b46d5d10) at
 7643       xwayland-cursor.c:137
 7644     3  0x00005610b27b6ecd in xwl_set_cursor (device=<optimized out>,
 7645       screen=<optimized out>, cursor=<optimized out>, x=<optimized out>,
 7646       y=<optimized out>) at xwayland-cursor.c:249
 7647     4  0x00005610b2800b46 in miPointerUpdateSprite (pDev=0x5610b4501a30) at
 7648       mipointer.c:468
 7649     5  miPointerUpdateSprite (pDev=0x5610b4501a30) at mipointer.c:410
 7650     6  0x00005610b2800e56 in miPointerDisplayCursor (pCursor=0x5610b4b35740,
 7651       pScreen=0x5610b3d54410, pDev=0x5610b4501a30) at mipointer.c:206
 7652     7  miPointerDisplayCursor (pDev=0x5610b4501a30, pScreen=0x5610b3d54410,
 7653       pCursor=0x5610b4b35740) at mipointer.c:194
 7654     8  0x00005610b27ed62b in CursorDisplayCursor (pDev=<optimized out>,
 7655       pScreen=0x5610b3d54410, pCursor=0x5610b4b35740) at cursor.c:168
 7656     9  0x00005610b28773ee in AnimCurDisplayCursor (pDev=0x5610b4501a30,
 7657       pScreen=0x5610b3d54410, pCursor=0x5610b4b35740) at animcur.c:197
 7658     10 0x00005610b28eb4ca in ChangeToCursor (pDev=0x5610b4501a30,
 7659       cursor=0x5610b4b35740) at events.c:938
 7660     11 0x00005610b28ec99f in WindowHasNewCursor
 7661       (pWin=pWin@entry=0x5610b4b2e0c0) at events.c:3362
 7662     12 0x00005610b291102d in ChangeWindowAttributes (pWin=0x5610b4b2e0c0,
 7663       vmask=<optimized out>, vlist=vlist@entry=0x5610b4c41dcc,
 7664       client=client@entry=0x5610b4b2c900) at window.c:1561
 7665     13 0x00005610b28db8e3 in ProcChangeWindowAttributes (client=0x5610b4b2c900)
 7666       at dispatch.c:746
 7667     14 0x00005610b28e1e5b in Dispatch () at dispatch.c:497
 7668     15 0x00005610b28e5f34 in dix_main (argc=16, argv=0x7ffc7a601b68,
 7669       envp=<optimized out>) at main.c:276
 7670     16 0x00007f8828cde042 in __libc_start_main (main=0x5610b27ae930 <main>,
 7671       argc=16, argv=0x7ffc7a601b68, init=<optimized out>, fini=<optimized
 7672       out>, rtld_fini=<optimized out>, stack_end=0x7ffc7a601b58) at
 7673       ../csu/libc-start.c:308
 7674     17 0x00005610b27ae96e in _start () at cursor.c:1064
 7675     
 7676     Simple reproducer in gnome-shell: open up an Xwayland window, press some
 7677     tablet buttons, lock and unlock the screen. Repeat if it doesn't crash
 7678     the first time.
 7679     
 7680     So, let's fix this by registering our own device-specific private key
 7681     for storing a backpointer to xwl_tablet_pad, so that all input devices
 7682     have their private data pointers set to their respective xwl_seat.
 7683     
 7684     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 7685     Signed-off-by: Lyude Paul <lyude@redhat.com>
 7686 
 7687 commit 85a6fd11c723888ca093785a3df43066fdca9c33
 7688 Author: Roman Gilg <subdiff@gmail.com>
 7689 Date:   Wed Jul 8 17:08:55 2020 +0200
 7690 
 7691     xwayland: Damage surface in surface-relative coordinates
 7692     
 7693     In 9141196d positional coordinates were added to the damage call of pixmap
 7694     flips. The damage box coordinates are in screen space though and we need
 7695     to convert them first to surface-relative ones by substracting the origin
 7696     of the window.
 7697     
 7698     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 7699 
 7700 commit ed624544d4aef72db8dd575ad55ef5e206c54757
 7701 Author: Michel Dänzer <mdaenzer@redhat.com>
 7702 Date:   Fri Jul 10 11:01:10 2020 +0200
 7703 
 7704     xfree86: Bump ABI_VIDEODRV_VERSION to 25.2
 7705     
 7706     This gives out of tree drivers a fighting chance to build against both
 7707     sides of
 7708     https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/468 .
 7709     
 7710     Reviewed-by: Dave Airlie <airlied@redhat.com>
 7711 
 7712 commit ea47af87f692b291a988834c6f14d73a08cb1d75
 7713 Author: Dave Airlie <airlied@redhat.com>
 7714 Date:   Mon Jul 6 07:00:50 2020 +1000
 7715 
 7716     xserver/output: rename some badly named variables/APIs.
 7717     
 7718     This is an API and ABI break
 7719     
 7720     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 7721 
 7722 commit 15b7738389b36ec2739d4f599539bcb7c2be89a1
 7723 Author: Dave Airlie <airlied@redhat.com>
 7724 Date:   Mon Jul 6 07:00:04 2020 +1000
 7725 
 7726     exa: rename some badly named variables
 7727     
 7728     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 7729 
 7730 commit 5188603ff7d25186c9076fefeceba825f3a40d47
 7731 Author: Olivier Fourdan <ofourdan@redhat.com>
 7732 Date:   Mon Apr 20 11:29:16 2020 +0200
 7733 
 7734     xwayland: Add a pkg-config file for Xwayland
 7735     
 7736     Xwayland is usually spawned by the Wayland compositor which sets the
 7737     command line options.
 7738     
 7739     If a command line option is not supported, Xwayland will fail to start.
 7740     
 7741     That somehow makes the Xwayland command line option sort of ABI, the
 7742     Wayland compositor need to know if a particular option is supported by
 7743     Xwayland at build time.
 7744     
 7745     Also, currently, Xwayland is being installed along with the rest of the
 7746     common executable programs that users may run, which is sub-optimal
 7747     because, well, Xwayland is not a common executable program, it's meant
 7748     to be a proxy between the Wayland compositor and the legacy X11 clients
 7749     which wouldn't be able to run on Wayland otherwise.
 7750     
 7751     Xwayland would be better installed in `libexec` but that directory is
 7752     (purposedly) not in the user `PATH` and therefore the Wayland compositor
 7753     may not be able to find Xwayland in that case.
 7754     
 7755     To solve both problems (which options are supported by Xwayland and
 7756     where to look for it), add a `pkg-config` file specifically for Xwayland
 7757     which gives the full path to Xwayland (`xwayland`) and which options it
 7758     supports (using `pkg-config` variables).
 7759     
 7760     The `pkg-config` file also provides the `Version` so the build scripts
 7761     can check for a particular version if necessary.
 7762     
 7763     Obviously, Wayland compositors are not required to use the `pkg-config`
 7764     file and can continue to use whatever mechanism they deem preferable.
 7765     
 7766     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 7767     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 7768 
 7769 commit 2beefda5a80e5a016c32c1da733f9415a121179d
 7770 Author: Michel Dänzer <mdaenzer@redhat.com>
 7771 Date:   Tue Mar 17 12:55:34 2020 +0100
 7772 
 7773     xwayland: Move xwl_surface_damage definition to xwayland-screen.c
 7774     
 7775     It was already declared in xwayland-screen.h, and only takes a screen
 7776     parameter, no window ones.
 7777     
 7778     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 7779 
 7780 commit 12af425acd3f4a3a8aa85352857b130b0006b83c
 7781 Author: Michel Dänzer <mdaenzer@redhat.com>
 7782 Date:   Thu Jun 25 17:56:41 2020 +0200
 7783 
 7784     xwayland: Rename xwl_pixmap_cb → xwl_buffer_release_cb
 7785     
 7786     Seems clearer.
 7787     
 7788     While we're at it, also drop the unused pixmap parameter.
 7789     
 7790     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 7791 
 7792 commit 9eb0b4f731e21952f93e168900f10bf07e261107
 7793 Author: Michel Dänzer <mdaenzer@redhat.com>
 7794 Date:   Thu Jun 25 17:49:27 2020 +0200
 7795 
 7796     xwayland: Remove xwl_present_event::buffer_released in favor of ::pixmap
 7797     
 7798     No need for the separate boolean.
 7799     
 7800     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 7801 
 7802 commit 9141196d3104ab37385c3e385deaa70c002dd184
 7803 Author: Michel Dänzer <mdaenzer@redhat.com>
 7804 Date:   Tue Mar 17 12:58:12 2020 +0100
 7805 
 7806     xwayland: Propagate damage x1/y1 coordinates in xwl_present_flip
 7807     
 7808     This couldn't have worked correctly for non-0 x1/y1.
 7809     
 7810     Noticed by inspection.
 7811     
 7812     Reviewed-by: Simon Ser <contact@emersion.fr>
 7813 
 7814 commit 0006aecba097b437f96a462075494d68bdad24c1
 7815 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 7816 Date:   Sun Jul 5 13:18:45 2020 -0700
 7817 
 7818     doc: Update URLs in Xserver-DTrace.xml
 7819     
 7820     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
 7821 
 7822 commit 23e83724df4809fd7857cc609c33ce7e8d3021a4
 7823 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 7824 Date:   Sun Jul 5 13:07:33 2020 -0700
 7825 
 7826     Fix spelling/wording issues
 7827     
 7828     Most (but not all) of these were found by using
 7829       codespell --builtin clear,rare,usage,informal,code,names
 7830     but not everything reported by that was fixed.
 7831     
 7832     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
 7833 
 7834 commit b0413b6e99c6b5fbc04229ce64ddf1f41b08e63e
 7835 Author: Olivier Fourdan <ofourdan@redhat.com>
 7836 Date:   Tue Jun 2 11:23:46 2020 +0200
 7837 
 7838     xwayland: Use a fixed DPI value for core protocol
 7839     
 7840     The way Xwayland works (like all Wayland clients), it first queries the
 7841     Wayland registry, set up all relevant protocols and then initializes its
 7842     own structures.
 7843     
 7844     That means Xwayland will get the Wayland outputs from the Wayland
 7845     compositor, compute the physical size of the combined outputs and set
 7846     the corresponding Xwayland screen properties accordingly.
 7847     
 7848     Then it creates the X11 screen using fbScreenInit() but does so by using
 7849     a default DPI value of 96. That value is used to set the physical size
 7850     of the X11 screen, hence overriding the value computed from the actual
 7851     physical size provided by the Wayland compositor.
 7852     
 7853     As a result, the DPI computed by tools such as xdpyinfo will always be
 7854     96 regardless of the actual screen size and resolution.
 7855     
 7856     However, if the Wayland outputs get reconfigured, or new outputs added,
 7857     or existing outputs removed, Xwayland will recompute and update the
 7858     physical size of the screen, leading to an unexpected change of DPI.
 7859     
 7860     To avoid that discrepancy, use a fixed size DPI (defaults to 96, and can
 7861     be set using the standard command lime option "-dpi") and compute a
 7862     physical screen size to match that DPI setting.
 7863     
 7864     Note that only affects legacy core protocols, X11 clients can still get
 7865     the actual physical output size as reported by the Wayland compositor
 7866     using the RandR protocol, which also allows for the size to be 0 if the
 7867     size is unknown or meaningless.
 7868     
 7869     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 7870     Reviewed-by: Simon Ser <contact@emersion.fr>
 7871     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/731
 7872 
 7873 commit 6748a4094158d2bde1630b915a5318f9f22c8e0a
 7874 Author: SimonP <simonp.git@gmail.com>
 7875 Date:   Tue Jun 9 13:26:48 2020 +0200
 7876 
 7877     xwayland: Initialise values in xwlVidModeGetGamma()
 7878     
 7879     ProcVidModeGetGamma() relies on GetGamma() to initialise values if it
 7880     returns TRUE. Without this, we're sending uninitialised values to
 7881     clients.
 7882     
 7883     Fixes: xorg/xserver#1040
 7884 
 7885 commit d35f68336b0a462dc660797d1779581f348af04e
 7886 Author: Sjoerd Simons <sjoerd@collabora.com>
 7887 Date:   Fri Apr 10 16:34:06 2020 +0200
 7888 
 7889     xwayland: Fix crashes when there is no pointer
 7890     
 7891     When running with a weston session without a pointer device (thus with
 7892     the wl_seat not having a pointer) xwayland pointer warping and pointer
 7893     confining should simply be ignored to avoid crashes.
 7894     
 7895     Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
 7896 
 7897 commit 73480f172aeced074dd9301ae4d97f7d2f3a9a45
 7898 Author: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
 7899 Date:   Fri May 15 18:33:11 2020 +0200
 7900 
 7901     modesetting: Fix front_bo leak at drmmode_xf86crtc_resize on XRandR rotation
 7902     
 7903     Since the introduction of "modesetting: Remove unnecessary fb addition from
 7904     drmmode_xf86crtc_resize" the fb_id isn't initialited at
 7905     drmmode_xf86crtc_resize.
 7906     
 7907     Rotate operation of XRandR uses rotate_bo. So in this case the fb_id
 7908     associated to the front_bo is not initialized at drmmode_set_mode_major.
 7909     So fd_id remains 0.
 7910     
 7911     As every call to drmmode_xf86crtc_resize allocates a new front_bo we should
 7912     destroy unconditionally the old_front_bo if operation success. So we free
 7913     the allocated GBM handles.
 7914     
 7915     This avoids crashing xserver with a OOM in the RPI4 1Gb at 4k resolution
 7916     after 3 series xrandr rotations from normal to left and vice versa reported at
 7917     https://github.com/raspberrypi/firmware/issues/1345
 7918     
 7919     Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
 7920     Reviewed-by: Keith Packard <keithp@keithp.com>
 7921     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1024
 7922     Fixes: 8774532121 "modesetting: Remove unnecessary fb addition from
 7923            drmmode_xf86crtc_resize"
 7924 
 7925 commit b67052742980fd3ec669100048da71e09aa61358
 7926 Author: Michel Dänzer <mdaenzer@redhat.com>
 7927 Date:   Fri Jun 19 18:10:18 2020 +0200
 7928 
 7929     xwayland: Free all remaining events in xwl_present_cleanup
 7930     
 7931     These events aren't reachable after xwl_present_cleanup, so they're
 7932     leaked if we don't free them first.
 7933     
 7934     This requires storing the pixmap pointer in struct xwl_present_window.
 7935     Luckily, the buffer pointer isn't used for anything, so just replace
 7936     that.
 7937     
 7938     v2:
 7939     * Bump pixmap reference count in xwl_present_flip and drop it in
 7940       xwl_present_free_event, fixes use-after-free in the latter due to the
 7941       pixmap already being destroyed.
 7942     
 7943     Reviewed-by: Dave Airlie <airlied@redhat.com>
 7944 
 7945 commit 1beffba699e2cc3f23039d2177c025bc127966de
 7946 Author: Michel Dänzer <mdaenzer@redhat.com>
 7947 Date:   Fri Jun 19 18:14:35 2020 +0200
 7948 
 7949     xwayland: Always use xwl_present_free_event for freeing Present events
 7950     
 7951     Minor cleanup, and will make the next change simpler. No functional
 7952     change intended.
 7953     
 7954     Reviewed-by: Dave Airlie <airlied@redhat.com>
 7955 
 7956 commit 1bdedc8dbb9d035b85444c2558a137470ff52113
 7957 Author: Michel Dänzer <mdaenzer@redhat.com>
 7958 Date:   Fri Jun 19 17:24:42 2020 +0200
 7959 
 7960     present/wnmd: Free flip_queue entries in present_wnmd_clear_window_flip
 7961     
 7962     When present_wnmd_clear_window_flip is done, present_destroy_window
 7963     frees struct present_window_priv, and the events in the flip queue
 7964     become unreachable. So if we don't free them first, they're leaked.
 7965     
 7966     Also drop the call to present_wnmd_set_abort_flip, which just sets a
 7967     flag in struct present_window_priv and thus can't have any observable
 7968     effect after present_destroy_window.
 7969     
 7970     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1042
 7971     Reviewed-by: Dave Airlie <airlied@redhat.com>
 7972 
 7973 commit bc9dd1c71c3722284ffaa7183f4119151b25a44f
 7974 Author: Michel Dänzer <mdaenzer@redhat.com>
 7975 Date:   Fri Jun 19 17:02:40 2020 +0200
 7976 
 7977     present/wnmd: Keep pixmap pointer in present_wnmd_clear_window_flip
 7978     
 7979     The comment was incorrect: Any reference held by the window (see
 7980     present_wnmd_execute) is in addition to the one in struct present_vblank
 7981     (see present_vblank_create). So if we don't drop the latter, the pixmap
 7982     will be leaked.
 7983     
 7984     Reviewed-by: Dave Airlie <airlied@redhat.com>
 7985 
 7986 commit 7ae221ad5774756766dc78a73d71f4163ac7b1c6
 7987 Author: Martin Weber <martin.weber@secunet.com>
 7988 Date:   Fri Jun 19 16:51:15 2020 +0200
 7989 
 7990     hw/xfree86: Avoid cursor use after free
 7991     
 7992     During a VT-Switch a raw pointer to the shared cursor object
 7993     is saved which is then freed (in case of low refcount) by a call to
 7994     xf86CursorSetCursor with argument pCurs = NullCursor.
 7995     This leads to a dangling pointer which can follow in a use after free.
 7996     
 7997     This fix ensures that there is a shared handle saved for the VT-Switch cycle.
 7998     
 7999     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 8000 
 8001 commit 6a79a737e2c0bc730ee693b4ea4a1530c108be4e
 8002 Author: Aaron Ma <aaron.ma@canonical.com>
 8003 Date:   Sat Apr 11 17:29:35 2020 +0800
 8004 
 8005     xfree86: add drm modes on non-GTF panels
 8006     
 8007     EDID1.4 replaced GTF Bit with Continuous or Non-Continuous Frequency Display.
 8008     
 8009     Check the "Display Range Limits Descriptor" for GTF support.
 8010     If panel doesn't support GTF, then add gtf modes.
 8011     
 8012     Otherwise X will only show the modes in "Detailed Timing Descriptor".
 8013     
 8014     V2: Coding style changes.
 8015     V3: Coding style changes, remove unused variate.
 8016     V4: remove unused variate.
 8017     
 8018     BugLink: https://gitlab.freedesktop.org/drm/intel/issues/313
 8019     Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
 8020     Reviewed-by: Adam Jackson <ajax@redhat.com>
 8021 
 8022 commit d6558477d7a264c2132bc977b51d80fc0277d1e0
 8023 Author: Simon Ser <contact@emersion.fr>
 8024 Date:   Tue Jun 2 15:40:16 2020 +0200
 8025 
 8026     xwayland: allow using linux-dmabuf with DRM_FORMAT_MOD_INVALID
 8027     
 8028     When the linux-dmabuf protocol is available, prefer it over the old
 8029     wl_drm protocol. Previously wl_drm was used when modifiers aren't
 8030     supported, however linux-dmabuf supports formats without modifiers too.
 8031     In this case, linux-dmabuf will send a DRM_FORMAT_MOD_INVALID modifier
 8032     for each supported format [1].
 8033     
 8034     This allows compositors to better handle these buffers, getting a
 8035     DMA-BUF and implementing features like direct scan-out.
 8036     
 8037     A similar logic has been implemented for EGL [2].
 8038     
 8039     DRM_FORMAT_MOD_INVALID is now stored in the xwl_screen->formats list.
 8040     glamor_get_modifiers still returns FALSE with zero modifiers if the
 8041     only advertised modifier is DRM_FORMAT_MOD_INVALID.
 8042     
 8043     [1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/commit/fb9b2a87317c77e26283da5f6c9559d709f6fdcd
 8044     [2]: https://gitlab.freedesktop.org/mesa/mesa/-/commit/c376865f5eeca535c4aa8e33bcf166052c1ce2f2
 8045     
 8046     Signed-off-by: Simon Ser <contact@emersion.fr>
 8047     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 8048 
 8049 commit c0e13cbf5a56e1fdd1e4ce58ebdefb6d2904e4b3
 8050 Author: Simon Ser <contact@emersion.fr>
 8051 Date:   Tue Jun 2 15:28:38 2020 +0200
 8052 
 8053     xwayland: only use linux-dmabuf if format/modifier was advertised
 8054     
 8055     Previously, linux-dmabuf was used unconditionally if the buffer had a
 8056     modifier. However creating a linux-dmabuf buffer with a format/modifier
 8057     which hasn't been advertised will fail.
 8058     
 8059     Change xwl_glamor_gbm_get_wl_buffer_for_pixmap to use linux-dmabuf when
 8060     the format/modifier has been advertised only.
 8061     
 8062     Signed-off-by: Simon Ser <contact@emersion.fr>
 8063     Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1035
 8064     Tested-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
 8065     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 8066 
 8067 commit 9c8d2744584868aa2655bf3ec047f2f9669e4291
 8068 Author: Simon Ser <contact@emersion.fr>
 8069 Date:   Mon May 4 10:53:57 2020 +0200
 8070 
 8071     xwayland: don't use GBM_BO_USE_SCANOUT
 8072     
 8073     This flag should only be used when the caller intends to display the
 8074     buffer on a hardware plane. Xwayland isn't a DRM client, so it doesn't
 8075     make sense to use this flag.
 8076     
 8077     This change will allow the driver to potentially use buffer parameters
 8078     that are more optimized.
 8079     
 8080     Signed-off-by: Simon Ser <contact@emersion.fr>
 8081     Reviewed-by: Daniel Stone <daniels@collabora.com>
 8082     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 8083 
 8084 commit fc4f248544f207ffd68303da22ea1e27beb3729f
 8085 Author: Adam Jackson <ajax@redhat.com>
 8086 Date:   Fri Jun 5 14:33:03 2020 -0400
 8087 
 8088     xwayland: Set the vendor name for GLX_EXT_libglvnd
 8089     
 8090     Without this the client library will flail around looking for a default
 8091     provider, probably one named "indirect", and that defeats the point of
 8092     having the EGL provider for direct context support in the first place.
 8093     
 8094     This assumes that "mesa" will work, of course, and in general it should.
 8095     Mesa drivers will DTRT through the DRI3 setup path, and if our glamor is
 8096     atop something non-Mesa then you should fall back to llvmpipe like 1.20.
 8097     In the future it might be useful to differentiate the vendor here based
 8098     on whether glamor is using gbm or streams.
 8099     
 8100     Fixes: xorg/xserver#1032
 8101 
 8102 commit 5dc16f6fec672c10fc26dcaaf00df0f6bed0ef9a
 8103 Author: Matthieu Herrb <matthieu@herrb.eu>
 8104 Date:   Tue Jun 2 17:32:11 2020 +0200
 8105 
 8106     Remove BSD APM support.
 8107     
 8108     None of the current BSD is actually using this code.
 8109     (checked DragonFly 5.8.1, FreeBSD 11.2, NetBSD 9.0 and OpenBSD 6.7)
 8110     
 8111     Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 8112 
 8113 commit b5b529799a20f8a262066daeb726307c0631f208
 8114 Author: Jan Beich <jbeich@FreeBSD.org>
 8115 Date:   Sun Feb 9 15:28:10 2020 +0000
 8116 
 8117     meson: split udev from udev_kms which requires systemd
 8118     
 8119     DragonFly and FreeBSD can use xf86-input-libinput with config/udev.
 8120     
 8121     ld: error: undefined symbol: xf86PlatformDeviceProbe
 8122     >>> referenced by xf86platformBus.c
 8123     >>>               xf86platformBus.c.o:(xf86platformProbe) in archive hw/xfree86/common/libxorg_common.a
 8124     
 8125     ld: error: undefined symbol: xf86PlatformDeviceCheckBusID
 8126     >>> referenced by xf86platformBus.c
 8127     >>>               xf86platformBus.c.o:(xf86platformProbeDev) in archive hw/xfree86/common/libxorg_common.a
 8128     
 8129     ld: error: undefined symbol: xf86PlatformReprobeDevice
 8130     >>> referenced by xf86platformBus.c
 8131     >>>               xf86platformBus.c.o:(xf86platformVTProbe) in archive hw/xfree86/common/libxorg_common.a
 8132     
 8133     ld: error: undefined symbol: NewGPUDeviceRequest
 8134     >>> referenced by udev.c
 8135     >>>               udev.c.o:(device_added) in archive config/liblibxserver_config.a
 8136     
 8137     ld: error: undefined symbol: DeleteGPUDeviceRequest
 8138     >>> referenced by udev.c
 8139     >>>               udev.c.o:(device_removed) in archive config/liblibxserver_config.a
 8140 
 8141 commit be731e0bdc7d76ad3782d5b533b6bcc8378f41ad
 8142 Author: Jan Beich <jbeich@FreeBSD.org>
 8143 Date:   Sun Feb 9 15:12:39 2020 +0000
 8144 
 8145     glx: unbreak on Unix without /usr/include/drm
 8146     
 8147     In file included from ../glx/glxdri2.c:35:
 8148     /usr/local/include/GL/internal/dri_interface.h:43:10: fatal error: 'drm.h' file not found
 8149      #include <drm.h>
 8150               ^~~~~~~
 8151     In file included from ../glx/glxdriswrast.c:39:
 8152     /usr/local/include/GL/internal/dri_interface.h:43:10: fatal error: 'drm.h' file not found
 8153      #include <drm.h>
 8154               ^~~~~~~
 8155 
 8156 commit f2cf236da8e8fefd6f503ceb0a448c5ad9651024
 8157 Author: Jan Beich <jbeich@FreeBSD.org>
 8158 Date:   Sat Nov 16 18:40:36 2019 +0000
 8159 
 8160     os: unbreak xsha1 on FreeBSD
 8161     
 8162     ../os/xsha1.c:36:10: fatal error: 'sha1.h' file not found
 8163      #include <sha1.h>
 8164               ^~~~~~~~
 8165     ../os/xsha1.c:45:5: error: implicit declaration of function 'SHA1Init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
 8166         SHA1Init(ctx);
 8167         ^
 8168     ../os/xsha1.c:54:5: error: implicit declaration of function 'SHA1Update' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
 8169         SHA1Update(sha1_ctx, data, size);
 8170         ^
 8171     ../os/xsha1.c:63:5: error: implicit declaration of function 'SHA1Final' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
 8172         SHA1Final(result, sha1_ctx);
 8173         ^
 8174 
 8175 commit 4195e8035645007be313ade79032b8d561ceec6c
 8176 Author: Olivier Fourdan <ofourdan@redhat.com>
 8177 Date:   Tue May 5 15:40:43 2020 +0200
 8178 
 8179     xwayland: Clear private on device removal
 8180     
 8181     Xwayland uses the device private to point to the `xwl_seat`.
 8182     
 8183     Device may be removed at any time, including on suspend.
 8184     
 8185     On resume, if the DIX code ends up calling a function that requires the
 8186     `xwl_seat` such as `xwl_set_cursor()` we may end up pointing at random
 8187     data.
 8188     
 8189     Make sure the clear the device private data on removal so that we don't
 8190     try to use it and crash later.
 8191     
 8192     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 8193     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 8194     https://gitlab.freedesktop.org/xorg/xserver/issues/709
 8195 
 8196 commit 6ef1b0108ebe98c58fe5e00c86de52452c817518
 8197 Author: Peter Hutterer <peter.hutterer@who-t.net>
 8198 Date:   Fri May 8 10:54:31 2020 +1000
 8199 
 8200     gitlab CI: use the fdo ci-templates repository
 8201     
 8202     wayland/ci-templates was moved to freedesktop/ci-templates, everything
 8203     else stayed the same so the sha is still valid.
 8204     
 8205     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
 8206     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
 8207 
 8208 commit 421ce458f1d295015c108eb32f9611e527649cf8
 8209 Author: Simon Ser <contact@emersion.fr>
 8210 Date:   Mon May 4 18:20:17 2020 +0200
 8211 
 8212     xwayland: import DMA-BUFs with GBM_BO_USE_RENDERING only
 8213     
 8214     Drop GBM_BO_USE_SCANOUT from the GBM_BO_IMPORT_FD import, add
 8215     GBM_BO_USE_RENDERING to the GBM_BO_IMPORT_FD_MODIFIER import.
 8216     
 8217     If the DMA-BUF cannot be scanned out, gbm_bo_import with
 8218     GBM_BO_USE_SCANOUT will fail. However Xwayland doesn't need to scan-out
 8219     the buffer and can work fine without scanout. Glamor only needs
 8220     GBM_BO_USE_RENDERING.
 8221     
 8222     Signed-off-by: Simon Ser <contact@emersion.fr>
 8223     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 8224     Reviewed-by: Daniel Stone <daniels@collabora.com>
 8225 
 8226 commit 0777cf46d7260f3d0c7fe82af5c94137d1e4f3de
 8227 Author: Carlos Garnacho <carlosg@gnome.org>
 8228 Date:   Thu May 7 20:15:14 2020 +0200
 8229 
 8230     xwayland: Improve checks for confined_to on InputOnly windows
 8231     
 8232     In this pretty Wine/Proton specific kludge, we try to handle confining grabs
 8233     on InputOnly windows by trying to find the InputOutput window that the pointer
 8234     would get visually confined to.
 8235     
 8236     The grabbing window and the visible window come from different clients, so
 8237     we used to simply resort to the pointer focus. This is troublesome though, as
 8238     the call may happen very soon at a time that the toplevel wasn't yet mapped by
 8239     the Wayland compositor, so the pointer focus may well be out of date soon.
 8240     
 8241     In these situations, it does seem that even though the confining grab happens
 8242     too early to have the wayland surface mapped, the xserver view of the WindowPtr
 8243     does already reflect the size. Use this to find out the better window to
 8244     assign the confining grab to, one whose geometry fully contains the InputOnly
 8245     window's.
 8246     
 8247     Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
 8248     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 8249 
 8250 commit f486e2fdaa1b252405a3aee90bd495b8b4c851f2
 8251 Author: Olivier Fourdan <ofourdan@redhat.com>
 8252 Date:   Tue May 5 10:38:50 2020 +0200
 8253 
 8254     xwayland: Remove undeeded test
 8255     
 8256     xwl_seat_maybe_lock_on_hidden_cursor() checks that the value of
 8257     cursor_confinement_window is not NULL, yet there is no code path
 8258     that could lead to this.
 8259     
 8260     Remove the test for cursor_confinement_window being set, it's useless.
 8261     
 8262     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 8263     Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
 8264     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 8265 
 8266 commit baa8d12e464664b5ad3c591be05a0087482790ca
 8267 Author: Olivier Fourdan <ofourdan@redhat.com>
 8268 Date:   Thu Apr 30 13:55:42 2020 +0200
 8269 
 8270     xwayland: Lock on entering surface if needed
 8271     
 8272     When an X11 client issues a ConfinePointer wit ha hidden cursor,
 8273     Xwayland may translate that as a pointer lock.
 8274     
 8275     However, if the pointer is located on another window at the time,
 8276     the request may be ignored, even if the pointer later enters the window.
 8277     
 8278     To avoid that issue, check again if locking the pointer with a hidden
 8279     cursor is needed when pointer enters a surface.
 8280     
 8281     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 8282     Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
 8283     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 8284 
 8285 commit 1345f804a88efc11c58f8388983d34445d3e5928
 8286 Author: Olivier Fourdan <ofourdan@redhat.com>
 8287 Date:   Tue Mar 24 16:33:16 2020 +0100
 8288 
 8289     xwayland: confine motion events to the confined window
 8290     
 8291     When an X11 client has an active grab on the pointer, all events are
 8292     reported relative to the window with the grab.
 8293     
 8294     For Xwayland, if an X11 client has a grab with a pointer confinement
 8295     active, while pointer focus is on another window, motion events should
 8296     not be reported to the client with the grab, because that sets the X11
 8297     client appart, the events would be reported when the pointer is on any
 8298     X11 window but not on Wayland native surfaces.
 8299     
 8300     Therefore, if the pointer is confined on a window and that window
 8301     differs from the actual pointer focus window, just pretend we lost
 8302     pointer focus to another window.
 8303     
 8304     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 8305     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/962
 8306     Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
 8307     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 8308 
 8309 commit 5929b789f9c6531ee257504a7be9c9e3a49b30eb
 8310 Author: Olivier Fourdan <ofourdan@redhat.com>
 8311 Date:   Tue Mar 24 16:12:38 2020 +0100
 8312 
 8313     xwayland: Do not lock the pointer on the wrong window
 8314     
 8315     If a client issues a grab on the pointer while the cursor is on another
 8316     X11 window, and then hides the cursor, we may end up locking the pointer
 8317     onto that other window.
 8318     
 8319     Then a button click might end up moving the focus away from the window
 8320     which issued the grab, leaving the whole setup in a mixed up state.
 8321     
 8322     Typically, if the pointer is on another X11 window, we should not try to
 8323     lock the pointer, so that it can be moved back to the window which
 8324     actually issues the grab (and hence the pointer confinement). Typically,
 8325     this is the same as an X11 client issuing a pointer grab while the
 8326     cursor is on another Wayland native window.
 8327     
 8328     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 8329     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/962
 8330     Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
 8331     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 8332 
 8333 commit a5151f58cf98d1696d60a3577dc50851f159da8a
 8334 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 8335 Date:   Sun May 10 17:46:33 2020 -0700
 8336 
 8337     Update URL's in man pages
 8338     
 8339     Mostly http->https conversions, but also replaces gitweb.fd.o
 8340     with gitlab.fd.o, and xquartz.macosforge.org with xquartz.org.
 8341     
 8342     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
 8343 
 8344 commit 9bf33bab32fdfbe68b287947f55906ff0ac67f04
 8345 Author: Martin Weber <martin.weber@secunet.com>
 8346 Date:   Fri May 8 16:45:50 2020 +0200
 8347 
 8348     test: Fix struct initialization warning
 8349 
 8350 commit 462beb5338a44390e2fff03096942b035b509830
 8351 Author: Christopher Chavez <chrischavez@gmx.us>
 8352 Date:   Sat Apr 25 05:09:51 2020 +0000
 8353 
 8354     XQuartz: recognize F16-F20 and Menu keys
 8355     
 8356     Signed-off-by: Christopher Chavez <chrischavez@gmx.us>
 8357 
 8358 commit 9937183e4bd2e96154bb4724805f74341ae84bd6
 8359 Author: Alexander Volkov <a.volkov@rusbitech.ru>
 8360 Date:   Tue Apr 21 12:38:03 2020 +0300
 8361 
 8362     Fix build with gcc 9.3.0's -Werror=alloc-size-larger-than=
 8363 
 8364 commit 89f42b88216c0899977dd3861cbf13c5bae321d8
 8365 Author: Alexander Volkov <a.volkov@rusbitech.ru>
 8366 Date:   Tue Apr 21 01:01:21 2020 +0300
 8367 
 8368     gitlab-ci: Bump DEBIAN_TAG to build with gcc 9.3.0
 8369 
 8370 commit 9890e91265cb58c0cddc4de3c8845d18ae6e5a77
 8371 Author: Tobias Stoeckmann <tobias@stoeckmann.org>
 8372 Date:   Sun Apr 19 15:29:43 2020 +0200
 8373 
 8374     hw/xfree86: Support ACPI without APM.
 8375     
 8376     On systems with ACPI but disabled APM (e.g. --disable-linux-apm)
 8377     the code does not compile due to preprocessor directives.
 8378     
 8379     If APM is disabled, the final return statement is considered to
 8380     be part of ACPI's last if-statement, leading to a function which
 8381     has no final return statement at all.
 8382     
 8383     I have refactored the code so ACPI and APM are independent of each
 8384     other.
 8385     
 8386     Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
 8387 
 8388 commit 785e59060c00129e47da6c0877604a56d7e0e32f
 8389 Author: Olivier Fourdan <ofourdan@redhat.com>
 8390 Date:   Fri Apr 24 17:45:49 2020 +0200
 8391 
 8392     xwayland: Fix infinite loop at startup
 8393     
 8394     Mutter recently added headless tests, and when running those tests the
 8395     Wayland compositor runs for a very short time.
 8396     
 8397     Xwayland is spawned by the Wayland compositor and upon startup will
 8398     query the various Wayland protocol supported by the compositor.
 8399     
 8400     To do so, it will do a roundtrip to the Wayland server waiting for
 8401     events it expects.
 8402     
 8403     If the Wayland compositor terminates before Xwayland has got the replies
 8404     it expects, it will loop indefinitely calling `wl_display_roundtrip()`
 8405     continuously.
 8406     
 8407     To avoid that issue, add a new `xwl_screen_roundtrip()` that checks for
 8408     the returned value from `wl_display_roundtrip()` and fails if it is
 8409     negative.
 8410     
 8411     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 8412     Reviewed-by: Roman Gilg <subdiff@gmail.com>
 8413     Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
 8414 
 8415 commit 2fe13a1f448ff27925f92a557f145bab9ab91a0e
 8416 Author: Jon Turney <jon.turney@dronecode.org.uk>
 8417 Date:   Fri Feb 11 16:10:36 2011 +0000
 8418 
 8419     hw/xwin: Drop call to setlocale()
 8420     
 8421     Since we now only work with UTF-8 (or ISO8859-1) text in the clipboard,
 8422     we don't need to setlocale().
 8423 
 8424 commit f269e01e1a783227c88b395cf6f55dcadeb751c9
 8425 Author: Jon Turney <jon.turney@dronecode.org.uk>
 8426 Date:   Mon Jul 2 17:25:53 2018 +0100
 8427 
 8428     hw/xwin: Consistently use BOOL type from Xmd.h
 8429     
 8430     This avoids including Xdefs.h, which means we avoid all the issues with
 8431     _XSERVER64 effecting how types are defined by that.
 8432 
 8433 commit 4055fed1e7933c05afe143cbd18743c1ff1c7fee
 8434 Author: Jon Turney <jon.turney@dronecode.org.uk>
 8435 Date:   Sun Jul 1 15:53:42 2018 +0100
 8436 
 8437     hw/xwin: Remove XSetAuthorization() for helper clients
 8438     
 8439     All helper client code now uses xcb, so calling XSetAuthorization() is
 8440     no longer needed.
 8441     
 8442     This is the last reference to libX11 from helper clients, so linking
 8443     with x11-xcb and libX11 is no longer required.
 8444     
 8445     Also drop (unneeded?) linking with libXau.
 8446     
 8447     Also drop installing these prerequistes on AppvVeyor.
 8448     
 8449     Also move prototypes for functions in winauth.c from win.h into a new
 8450     header, winauth.h, and include that where needed.
 8451 
 8452 commit 9e02e023b08e24d4213ca14d99612e4cf5ef2f1e
 8453 Author: Jon Turney <jon.turney@dronecode.org.uk>
 8454 Date:   Sat Jun 30 16:00:16 2018 +0100
 8455 
 8456     hw/xwin: xcbify clipboard integration
 8457     
 8458     Convert clipboard integration code from libX11 to xcb
 8459     
 8460     This drops support for COMPOUND_TEXT.  Presumably some ancient
 8461     (pre-2000) clients exist which support that, but not UTF8_STRING, but we
 8462     don't have an example to test with. (Given the nature of the thing, the
 8463     users of those clients probably work in CJK languages)
 8464     
 8465     Supporting COMPOUND_TEXT would also involve writing (or extracting from
 8466     Xlib) support for the ISO 2022 encoding.
 8467     
 8468     v2:
 8469     Fix the length of text property set by a SelectionRequest
 8470     
 8471     The length of the text property is not neccessarily the same as the
 8472     length of the clipboard text before it is d2u converted (specifically,
 8473     if that contains any '\r\n' sequences, it will be shorter as they are
 8474     now just '\n')
 8475 
 8476 commit f4936de73c094e35eb293f32ab470347741a4fa0
 8477 Author: Jon Turney <jon.turney@dronecode.org.uk>
 8478 Date:   Sun Jul 1 12:11:19 2018 +0100
 8479 
 8480     hw/xwin: Remove nounicodeclipboard option
 8481     
 8482     Always use CF_UNICODETEXT clipboard format.  Windows will automatically
 8483     down-convert to CF_TEXT for clients which request that.
 8484     
 8485     This is subtly different in one way: if CF_TEXT is requested, we now
 8486     post CF_UNICODETEXT and it is converted to CF_TEXT *in the locale of the
 8487     requesting process*.  Previously, we would convert to CF_TEXT *in our
 8488     locale* and post that.
 8489     
 8490     It looks like the code in the !X_HAVE_UTF8_STRING case didn't actually
 8491     work correctly, but fortunately that has never been true...
 8492 
 8493 commit 9f51dfdec37c991173c7a580fd1c279cfe09142e
 8494 Author: Jon Turney <jon.turney@dronecode.org.uk>
 8495 Date:   Sat Jun 30 16:15:52 2018 +0100
 8496 
 8497     hw/xwin: Remove support for pre-Vista Win32 clipboard API
 8498     
 8499     The original Win32 clipboard API is widely regarded as terrible, since
 8500     it relies on clients co-operatively managing the clipboard viewer chain,
 8501     and a single buggy client can break it for all other clients.
 8502     
 8503     The last Windows version only supporting that API was Windows XP (5.1),
 8504     EOLed in 2014.
 8505     
 8506     (This requires MinGW-w64 w32api 6.0.0 or later for
 8507     Add/RemoveClipboardListener correctly exported by the x86_64 user32
 8508     implib)
 8509 
 8510 commit 9a4b62798bf4bcc2828a2a485e878e7d4447d03d
 8511 Author: Jon Turney <jon.turney@dronecode.org.uk>
 8512 Date:   Fri Apr 26 02:26:44 2019 +0100
 8513 
 8514     hw/xwin: Fix lingering uses of libX11 types and values
 8515 
 8516 commit d7010cd93a381f1fc0cc681ddb70df9371370644
 8517 Author: Jon Turney <jon.turney@dronecode.org.uk>
 8518 Date:   Thu Nov 19 18:06:28 2015 +0000
 8519 
 8520     hw/xwin: Warn about too large Windows -> X clipboard pastes
 8521     
 8522     XChangeProperty() requests larger than the ~16MB permitted even with
 8523     BigReq will fail BadLength
 8524 
 8525 commit 56a91f20671402a8c6f60c40e5e4e18f7978c740
 8526 Author: Jon Turney <jon.turney@dronecode.org.uk>
 8527 Date:   Wed Nov 18 21:27:23 2015 +0000
 8528 
 8529     hw/xwin: Implement INCR protocol for X clipboard -> Windows clipboard
 8530     
 8531     Also, relax the timeout mechanism so it allows 1 second between events,
 8532     rather than 1 second for the entire transfer, as transfers of large
 8533     pastes can take more than 1 second.
 8534     
 8535     Also, prefer UTF8_STRING encoding to COMPOUND_TEXT encoding
 8536 
 8537 commit 4f95d87d66b6a6e11aa8616c9242e0907ffee66b
 8538 Author: Michael Stapelberg <stapelberg@google.com>
 8539 Date:   Thu Mar 26 21:53:58 2020 +0100
 8540 
 8541     Xorg: honor AutoRepeat option
 8542     
 8543     This option was implemented before the drivers were split in ≈2006,
 8544     and e.g. XWin still supports it.
 8545     
 8546     With this commit, Xorg regains support, so that the following configuration can
 8547     be used to set the repeat rate for all keyboard devices without having to modify
 8548     Xorg command-line flags or having to automate xset(1):
 8549     
 8550     Section "InputClass"
 8551             Identifier "system-keyboard"
 8552             MatchIsKeyboard "on"
 8553             Option "XkbLayout" "de"
 8554             Option "XkbVariant" "neo"
 8555             Option "AutoRepeat" "250 30"
 8556     EndSection
 8557     
 8558     Signed-off-by: Michael Stapelberg <stapelberg@google.com>
 8559 
 8560 commit 5684d436e2b65cd0fe305460e437a2f69af29865
 8561 Author: Adam Jackson <ajax@redhat.com>
 8562 Date:   Thu Apr 19 14:49:22 2018 -0400
 8563 
 8564     xinput: Remove PropagateMask
 8565     
 8566     Initialized to a constant value, never modified, never varied by device.
 8567     
 8568     Signed-off-by: Adam Jackson <ajax@redhat.com>
 8569 
 8570 commit 4520ec9bd54b261fa2b210e9550d76087ef06259
 8571 Author: Adam Jackson <ajax@redhat.com>
 8572 Date:   Thu Apr 19 14:42:47 2018 -0400
 8573 
 8574     xinput: Remove ExtExclusiveMasks
 8575     
 8576     Initialized to a constant value, never modified, never varied by device.
 8577     
 8578     Signed-off-by: Adam Jackson <ajax@redhat.com>
 8579 
 8580 commit 1e29f3ea3eb63cfcb78a463ee0345ec22a013033
 8581 Author: Adam Jackson <ajax@redhat.com>
 8582 Date:   Thu Mar 5 16:32:56 2020 -0500
 8583 
 8584     glx: Require screens match for share contexts for classic CreateContext
 8585     
 8586     The GLX_ARB_create_context path (with which this should all get unified,
 8587     someday, sigh) already enforces this, but the classic path does not.
 8588     It's effectively assumed by the implementation anyway, so let's enforce
 8589     it rather than do crashy things.
 8590     
 8591     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 8592     Signed-off-by: Adam Jackson <ajax@redhat.com>
 8593 
 8594 commit b56e501092169a9c0a60663d832ee71898a8bc4b
 8595 Author: Vasily Khoruzhick <anarsoul@gmail.com>
 8596 Date:   Fri Mar 20 20:36:25 2020 -0700
 8597 
 8598     glx: fixup symbol name for get_extensions function
 8599     
 8600     glxProbeDriver() concatenates __DRI_DRIVER_GET_EXTENSIONS with driver name
 8601     to get symbol name for get_extension function. Unfortunately that doesn't
 8602     work for drivers that have hyphen in their name, e.g. sun4i-drm --
 8603     get_extensions() for these uses underscore instead.
 8604     
 8605     As result dlsym() doesn't find get_extension() function and AIGLX
 8606     initialization fails resulting in following message in Xorg.0.log:
 8607     
 8608     (EE) AIGLX error: sun4i-drm does not export required DRI extension
 8609     
 8610     Replace all non-alpha-numeric characters with underscore to fix the issue.
 8611     
 8612     Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
 8613 
 8614 commit 5e91587302e85fd6f0e8d5ffbe30182e18c6913f
 8615 Author: Michel Dänzer <mdaenzer@redhat.com>
 8616 Date:   Tue Mar 17 11:45:22 2020 +0100
 8617 
 8618     xwayland: Delete all frame_callback_list nodes in xwl_unrealize_window
 8619     
 8620     We were only calling xwl_present_unrealize_window for the toplevel
 8621     window, but the list can contain entries from child windows as well,
 8622     in which case we were leaving dangling pointers to freed memory.
 8623     
 8624     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/1000
 8625     Fixes: c5067feaeea1 "xwayland: Use single frame callback for Present
 8626                          flips and normal updates"
 8627     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 8628     Tested-by: Olivier Fourdan <ofourdan@redhat.com>
 8629 
 8630 commit 5b9010fa6b0ab0971dddf5108d5a5046c05180b0
 8631 Author: Yuriy Vasilev <uuvasiliev@yandex.ru>
 8632 Date:   Fri Mar 6 20:22:19 2020 +0300
 8633 
 8634     modesetting: add support for GBM_FORMAT_ARGB1555
 8635     
 8636     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 8637     Signed-off-by: Yuriy Vasilev <uuvasiliev@yandex.ru>
 8638 
 8639 commit 8315fc4ea2e04598ce0c7e9771786a9334f0d456
 8640 Author: Yuriy Vasilev <uuvasiliev@yandex.ru>
 8641 Date:   Thu Mar 5 17:02:26 2020 +0300
 8642 
 8643     modesetting: add support for GBM_FORMAT_RGB565
 8644     
 8645     This allow x-server to run with -depth 16.
 8646     
 8647     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 8648     Signed-off-by: Yuriy Vasilev <uuvasiliev@yandex.ru>
 8649 
 8650 commit 3d6efc4aaff80301c0b10b7b6ba297eb5e54c1a0
 8651 Author: mntmn <lukas@mntre.com>
 8652 Date:   Sat Feb 22 17:25:15 2020 +0100
 8653 
 8654     xwayland: port rooted xwayland from wl_shell to xdg-shell protocol
 8655     
 8656     Recently, rooted Xwayland crashes on wlroots-based compositors, because
 8657     wlroots removed the deprecated wl_shell protocol.
 8658     This MR fixes this by changing the code in question to the xdg-shell
 8659     protocol. My motivation do this: on etnaviv-based embedded platforms,
 8660     rooted Xwayland is much faster and doesn't cause UI rendering bugs
 8661     compared to rootless Xwayland.
 8662     
 8663     Signed-off-by: Lukas F. Hartmann <lukas@mntre.com>
 8664 
 8665 commit de940e06f8733d87bbb857aef85d830053442cfe
 8666 Author: Peter Harris <pharris@opentext.com>
 8667 Date:   Thu Nov 14 14:06:21 2019 -0500
 8668 
 8669     xkb: fix key type index check in _XkbSetMapChecks
 8670     
 8671     This code block was moved from a function that returns 0 for failure to a
 8672     function that returns 0 for Success in commit
 8673     649293f6b634e6305b6737a841d6e9d0f0065d6c. Change the return value to
 8674     BadValue to match the other checks in _XkbSetMapChecks.
 8675     
 8676     Set nTypes to xkb->map->num_types when XkbKeyTypesMask is not set, to
 8677     allow requests with the XkbKeyTypesMask flag unset in stuff->present to
 8678     succeed.
 8679     
 8680     Fixes a potential heap smash when client->swapped is true, because the
 8681     remainder of the request will not be swapped after "return 0", but
 8682     _XkbSetMap will be called anyway (because 0 is Success).
 8683     
 8684     Signed-off-by: Peter Harris <pharris@opentext.com>
 8685 
 8686 commit 270e439739e023463e7e0719a4eede69d45f7a3f
 8687 Author: Peter Harris <pharris@opentext.com>
 8688 Date:   Thu Nov 14 14:00:31 2019 -0500
 8689 
 8690     xkb: only swap once in XkbSetMap
 8691     
 8692     The server swaps part of the request in _XkbSetMapChecks instead of
 8693     SProcXkbSetMap (presumably because walking the XkbSetMap request is hard,
 8694     and we don't want to maintain another copy of that code).
 8695     
 8696     Swap the first time _XkbSetMapChecks is called, not the second time.
 8697     
 8698     Signed-off-by: Peter Harris <pharris@opentext.com>
 8699 
 8700 commit d4faab8708779df265239b203ed5f020bff681bf
 8701 Author: Hans de Goede <hdegoede@redhat.com>
 8702 Date:   Mon Nov 4 15:01:18 2019 +0100
 8703 
 8704     xwayland: Remove unnecessary xwl_window_is_toplevel() check from xwl_output_set_window_randr_emu_props()
 8705     
 8706     Since the recent fix to call xwl_output_set_window_randr_emu_props() from
 8707     ensure_surface_for_window(), it is now only called on a toplevel window,
 8708     so the is-toplevel check is not necessary for the
 8709     xwl_output_set_window_randr_emu_props() case.
 8710     
 8711     This commit moves the check to xwl_output_set_randr_emu_prop_callback()
 8712     so that we only do it when we are walking over all Windows of a client
 8713     to update the property on a change of the emulated resolution.
 8714     
 8715     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8716     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8717 
 8718 commit 148f428dfccf606b932a00d5a00af06e8dca8a7e
 8719 Author: Hans de Goede <hdegoede@redhat.com>
 8720 Date:   Mon Nov 4 14:32:29 2019 +0100
 8721 
 8722     xwayland: Fix setting of _XWAYLAND_RANDR_EMU_MONITOR_RECTS prop on new windows
 8723     
 8724     For window-manager managed windows, xwl_realize_window is only called for
 8725     the window-manager's decoration window and not for the actual client window
 8726     on which we should set the _XWAYLAND_RANDR_EMU_MONITOR_RECTS prop.
 8727     
 8728     Usualy this is not a problem since we walk all client windows to update
 8729     the property when the resolution is changed through a randr call.
 8730     
 8731     But for apps which first do the randr change and only then create their
 8732     window this does not work, and our xwl_output_set_window_randr_emu_props
 8733     call in xwl_realize_window is a no-op as that is only called for the wm
 8734     decoration window and not for the actual client's window.
 8735     
 8736     This commit fixes this by making ensure_surface_for_window() call
 8737     xwl_output_set_window_randr_emu_props on the first and only child of
 8738     window-manager managed windows.
 8739     
 8740     Note this also removes the non-functional xwl_output_set_window_randr_emu_props
 8741     call from xwl_realize_window, which was intended to do this, but does not
 8742     work.
 8743     
 8744     This fixes apps using the ogre3d library always running at the
 8745     monitors native resolution.
 8746     
 8747     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8748     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8749 
 8750 commit 4cfc2677f5c82ca5db0919de549b9b077f1ba113
 8751 Author: Hans de Goede <hdegoede@redhat.com>
 8752 Date:   Mon Nov 4 11:46:49 2019 +0100
 8753 
 8754     xwayland: Call xwl_window_check_resolution_change_emulation() on newly created O-R windows
 8755     
 8756     Some clients, which use vidmode to change the resolution when going fullscreen,
 8757     create an override-redirect window and never trigger the screen->ResizeWindow
 8758     callback we rely on to do the xwl_window_check_resolution_change_emulation().
 8759     
 8760     This causes us to not apply a viewport to them, causing the fullscreen window
 8761     to not fill the entire monitor.
 8762     
 8763     This commit adds a call to xwl_window_check_resolution_change_emulation()
 8764     at the end of ensure_surface_for_window() to fix this. Note that
 8765     ensure_surface_for_window() exits early without creating an xwl_window
 8766     for new windows which will not be backed by a wayland surface and which
 8767     thus will not have an xwl_window.
 8768     
 8769     This fixes ClanLib-0.6.x and alleggl-4.4.x using apps not properly
 8770     fullscreening.
 8771     
 8772     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8773     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8774 
 8775 commit 88342353de45e64f408c38bb10cd1506ba0f159a
 8776 Author: Hans de Goede <hdegoede@redhat.com>
 8777 Date:   Mon Oct 7 14:27:49 2019 +0200
 8778 
 8779     xwayland: Fix emulated modes not being removed when screen rotation is used
 8780     
 8781     The code building the mode-list does the following to deal with screen
 8782     rotation:
 8783     
 8784         if (need_rotate || xwl_output->rotation & (RR_Rotate_0 | RR_Rotate_180)) {
 8785             mode_width = xwl_output->width;
 8786             mode_height = xwl_output->height;
 8787         } else {
 8788             mode_width = xwl_output->height;
 8789             mode_height = xwl_output->width;
 8790         }
 8791     
 8792     This means we need to do something similar in xwl_output_set_emulated_mode()
 8793     to determine if the mode being set is the actual (not-emulated) output mode
 8794     and we this should remove any emulated modes set by the client.
 8795     
 8796     All callers of xwl_output_set_emulated_mode always pass a mode pointer
 8797     to a member of xwl_output->randr_output->modes, so we do not need to
 8798     duplicate this code, instead we can simply check that the passed in mode
 8799     is modes[0] which always is the actual output mode.
 8800     
 8801     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8802     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8803 
 8804 commit 10df0437a2b142e61c4d84ffffa9592ac6846ef1
 8805 Author: Hans de Goede <hdegoede@redhat.com>
 8806 Date:   Thu Jan 9 11:00:36 2020 +0100
 8807 
 8808     xwayland: Also hook screen's MoveWindow method
 8809     
 8810     Not only hook the ResizeWindow method of the screen (which really is
 8811     MoveAndResize) but also hook the MoveWindow method for checking if we
 8812     need to setup a viewport for resolution change emulation.
 8813     
 8814     Our resolution change emulation check if the windows origin matches
 8815     the monitors origin and the windows origin can also be changed by just
 8816     a move without being resized.
 8817     
 8818     Also checking on a move becomes esp. important when we move to checking
 8819     on changes to the top-level non-window-manager client (X11)Window instead
 8820     of on changes to the xwl_window later on in this patch series.
 8821     
 8822     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8823     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8824 
 8825 commit 4fc107460a349a1a46f0e5251e6fd2a31f4c0428
 8826 Author: Hans de Goede <hdegoede@redhat.com>
 8827 Date:   Wed Jan 15 14:36:45 2020 +0100
 8828 
 8829     xwayland: Also check resolution-change-emulation when the xwl_window itself moves
 8830     
 8831     The recent change to use the top-level non-window-manager Window drawable
 8832     coordinates from xwl_window_check_resolution_change_emulation() in
 8833     combination with only calling it on a resize when the top-level window
 8834     is moved breaks things with mutter/gnome-shell.
 8835     
 8836     When fullscreening a X11 window, mutter moves its window-decoration Window
 8837     wrapping the top-level Window to the monitor's origin coordinates (e.g. 0x0)
 8838     last. This updates the top-level's drawable coordinates, but as the
 8839     actual MoveWindow is called on the wrapper Window and not on the toplevel
 8840     we do not call xwl_window_check_resolution_change_emulation() and we never
 8841     enable the viewport.
 8842     
 8843     This commit fixes this by also calling
 8844     xwl_window_check_resolution_change_emulation() if the Window being moved
 8845     is an xwl_window itself.
 8846     
 8847     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8848     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8849 
 8850 commit 6d98f840da6dfcf2a69e03a1b3fa0bf602ba1f27
 8851 Author: Roman Gilg <subdiff@gmail.com>
 8852 Date:   Fri Jan 3 17:55:28 2020 +0100
 8853 
 8854     xwayland: Check emulation on client toplevel resize
 8855     
 8856     When a reparented window is resized directly check the emulation instead of
 8857     doing this only when the window manager parent window is resized, what might
 8858     never happen.
 8859     
 8860     For that to work we need to make sure that we compare the current size of the
 8861     client toplevel when looking for an emulated mode.
 8862     
 8863     Changes by Hans de Goede:
 8864     - Remove xwl_window x, y, width and height members as those are no longer used.
 8865     - Add check for xwl_window_from_window() returning NULL.
 8866     
 8867     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 8868     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8869     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8870 
 8871 commit 060f10062eb1761515b762b46cba56c7a53db72c
 8872 Author: Roman Gilg <subdiff@gmail.com>
 8873 Date:   Wed Jan 15 10:07:58 2020 +0100
 8874 
 8875     xwayland: Make window_get_none_wm_owner return a Window instead of a Client
 8876     
 8877     Make window_get_none_wm_owner return the first non-wm-window instead of the
 8878     owner (client) of the first non-wm-window and rename it to
 8879     window_get_client_toplevel to match its new behavior.
 8880     
 8881     This is a preparation patch for switching to using the drawable coordinates
 8882     in xwl_window_should_enable_viewport()
 8883     
 8884     Changes by Hans de Goede:
 8885     - Split this change out into a separate patch for easier reviewing
 8886     - Rename window_get_none_wm_owner to window_get_client_toplevel to match
 8887       its new behavior
 8888     
 8889     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 8890     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8891     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8892 
 8893 commit a69f7fbb54efc8ffad320c8afd23cb41fc9edc27
 8894 Author: Roman Gilg <subdiff@gmail.com>
 8895 Date:   Fri Jan 3 17:27:28 2020 +0100
 8896 
 8897     xwayland: Recurse on finding the none-wm owner
 8898     
 8899     An X11 window manager might add a chain of parent windows when reparenting to a
 8900     decoration window.
 8901     
 8902     That is for example the case for KWin, which reparents client windows to one
 8903     decoration and another wrapper parent window.
 8904     
 8905     Account for that by a recursion into the tree. For now assume as before that
 8906     all X11 window managers reparent with one child only for these parent windows.
 8907     
 8908     Changes by Hans de Goede:
 8909     - Move the xwl_window_is_toplevel() from a later patch in this series here
 8910       as it really belongs together with these changes
 8911     - Drop no longer necessary xwl_window argument from window_get_none_wm_owner
 8912       parameters
 8913     
 8914     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 8915     Reviewed-by: Hans de Goede <hdegoede@redhat.com>
 8916     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8917     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8918 
 8919 commit 948e02872feb641a176b3af82b6ef1201c97bb16
 8920 Author: Roman Gilg <subdiff@gmail.com>
 8921 Date:   Fri Jan 3 17:12:14 2020 +0100
 8922 
 8923     xwayland: Reuse viewport instead of recreating
 8924     
 8925     When a viewport is already created we can reuse this object instead of
 8926     destroying it and getting a new one for updating the source rectangle and
 8927     destination size.
 8928     
 8929     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 8930     Reviewed-by: Hans de Goede <hdegoede@redhat.com>
 8931     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8932     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8933 
 8934 commit ded89300c1dd541f59fe6e93c5c69d7fe7088244
 8935 Author: Hans de Goede <hdegoede@redhat.com>
 8936 Date:   Mon Jan 27 11:08:00 2020 +0100
 8937 
 8938     xwayland: Cache client-id for the window-manager client
 8939     
 8940     Instead of iterating over all clients which are listening for events on the
 8941     root window and checking if the client we are dealing with is the one
 8942     listening for SubstructureRedirectMask | ResizeRedirectMask events and thus
 8943     is the window-manager, cache the client-id of the window-manager in
 8944     xwl_screen and use that when checking if a client is the window-manager.
 8945     
 8946     Note that we cache and compare the client-id rather then the ClienPtr,
 8947     this saves reading the ClientPtr from the global clients array when doing
 8948     the comparison.
 8949     
 8950     Suggested-by: Olivier Fourdan <ofourdan@redhat.com>
 8951     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 8952     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 8953 
 8954 commit 1e44861aba449eec81d69b1da3a6e6f88676e04f
 8955 Author: Roman Gilg <subdiff@gmail.com>
 8956 Date:   Mon May 27 23:01:53 2019 +0200
 8957 
 8958     present: Rename window_msc variable in present function
 8959     
 8960     The value is not the current msc of the window, but the target value
 8961     the client sets independently of the window speicific msc offset. Make
 8962     this clearer.
 8963     
 8964     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 8965     Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
 8966 
 8967 commit d3c1b223cec2b475c4f1661d7e5dc5238d08d8f6
 8968 Author: Roman Gilg <subdiff@gmail.com>
 8969 Date:   Mon May 27 22:58:49 2019 +0200
 8970 
 8971     present: Move scmd-update-window-crtc function
 8972     
 8973     Move the code portion down. That way it is at a similar position as in
 8974     the window mode file.
 8975     
 8976     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 8977     Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
 8978 
 8979 commit 8c2dcc5f800438d2b4545d21a515e013e6aac484
 8980 Author: Roman Gilg <subdiff@gmail.com>
 8981 Date:   Mon May 27 22:49:23 2019 +0200
 8982 
 8983     present: Code cleanup of window to crtc timings update
 8984     
 8985     Make the code more readable by going through some logical abort
 8986     conditions. Also make the function only about updating the crtc
 8987     msc value and not about also returning the next target msc.
 8988     
 8989     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 8990     Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
 8991 
 8992 commit 4d89ba0058457d51f2e1a132c0b7fc8a3ec5c76d
 8993 Author: Roman Gilg <subdiff@gmail.com>
 8994 Date:   Mon May 27 22:42:34 2019 +0200
 8995 
 8996     present: Unfold and annotate the target-msc getter
 8997     
 8998     Unfold and extensively annotate the target-msc adjustment function, to make
 8999     it easier to understand what's happening and why.
 9000     
 9001     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 9002     Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
 9003 
 9004 commit 99e55f1b955e2db442184756fcd8b95791fd71de
 9005 Author: Roman Gilg <subdiff@gmail.com>
 9006 Date:   Mon May 27 22:32:22 2019 +0200
 9007 
 9008     present: Adjust timings with value arguments
 9009     
 9010     We can use value arguments instead of pointers when adjusting the timings
 9011     by returning the adjusted value. This improves the readability.
 9012     
 9013     Signed-off-by: Roman Gilg <subdiff@gmail.com>
 9014     Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
 9015 
 9016 commit 4709d24f8e3ef5ee79085b77401eaacd7e1690c7
 9017 Author: Olivier Fourdan <ofourdan@redhat.com>
 9018 Date:   Fri Feb 14 15:20:59 2020 +0100
 9019 
 9020     xwayland: Add version command line option
 9021     
 9022     Xorg supports the '-version' command line option, add something similar
 9023     to Xwayland.
 9024     
 9025     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/976
 9026     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9027     Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
 9028     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9029 
 9030 commit ee9f6e20de1408d572dc1eba33f3d2a8501d7da5
 9031 Author: Adam Jackson <ajax@redhat.com>
 9032 Date:   Tue Aug 27 18:10:38 2019 -0400
 9033 
 9034     meson: Add support for libunwind
 9035 
 9036 commit 42aaf37241fedfd6a0f72b255f2d45d6ea34d8c6
 9037 Author: Zoltán Böszörményi <zboszor@gmail.com>
 9038 Date:   Wed Feb 12 21:29:52 2020 +0000
 9039 
 9040     Fix modesetting device matching through kmsdev device path
 9041     
 9042     xf86platformProbeDev didn't check the device path, fix it.
 9043     
 9044     This is a problem when trying to set up a non-PCI device via
 9045     explicit xorg.conf.d configuration.
 9046     
 9047     An USB DisplayLink device, being non-PCI was always set up
 9048     as a GPU device assigned to screen 0 instead of a regular
 9049     framebuffer, potentially having its own dedicated screen,
 9050     despite such configuration as below. Only the relevant parts
 9051     of the configuration are quoted, it's part of a larger context
 9052     with an Intel chip that has 3 outputs:
 9053     * DP1 connected to an LCD panel,
 9054     * VGA1 connected to an external monitor,
 9055     * HDMI1 unconnected and having no user visible connector
 9056     
 9057     Section "ServerFlags"
 9058             Option          "AutoBindGPU" "false"
 9059     EndSection
 9060     
 9061     ...
 9062     
 9063     Section "Device"
 9064             Identifier      "Intel2"
 9065             Driver          "intel"
 9066             BusID           "PCI:0:2:0"
 9067             Screen          2
 9068             Option          "Monitor-HDMI1" "HDMI1"
 9069             Option          "ZaphodHeads" "HDMI1"
 9070     EndSection
 9071     
 9072     Section "Device"
 9073             Identifier      "UDL"
 9074             Driver          "modesetting"
 9075             Option          "kmsdev" "/dev/dri/card0"
 9076             #BusID          "usb:0:1.2:1.0"
 9077             Option          "Monitor-DVI-I-1" "DVI-I-1"
 9078             Option          "ShadowFB" "on"
 9079             Option          "DoubleShadow" "on"
 9080     EndSection
 9081     
 9082     ...
 9083     
 9084     Section "Screen"
 9085             Identifier      "SCREEN2"
 9086             Option          "AutoServerLayout" "on"
 9087             Device          "UDL"
 9088             GPUDevice       "Intel2"
 9089             Monitor         "Monitor-DVI-I-1"
 9090             SubSection      "Display"
 9091                     Modes   "1024x768"
 9092                     Depth   24
 9093             EndSubSection
 9094     EndSection
 9095     
 9096     Section "ServerLayout"
 9097             Identifier      "LAYOUT"
 9098             Option          "AutoServerLayout" "on"
 9099             Screen          0 "SCREEN"
 9100             Screen          1 "SCREEN1" RightOf "SCREEN"
 9101             Screen          2 "SCREEN2" RightOf "SCREEN1"
 9102     EndSection
 9103     
 9104     On the particular machine I was trying to set up an UDL device,
 9105     I found the following structure was being used to match
 9106     the device to a platform device while I was debugging the issue:
 9107     
 9108     xf86_platform_devices[0] == Intel, /dev/dri/card1, primary platform device
 9109     xf86_platform_devices[1] == UDL, /dev/dri/card0
 9110     
 9111     devList[0] == "Intel0", ZaphodHeads: DP1
 9112     devList[1] == "Intel1", ZaphodHeads: VGA1
 9113     devList[2] == "UDL"
 9114     devList[3] == "Intel2", ZaphodHeads: HDMI1 (intended GPU device to UDL)
 9115     
 9116     When xf86platformProbeDev() matched the UDL device, the BusID
 9117     check failed in both cases of:
 9118     * BusID "usb:0:1.2:1.0" was specified
 9119     * Option "kmsdev" "/dev/dri/card0" was specified
 9120     
 9121     As a result, xf86platformProbeDev() went on to call probeSingleDevice()
 9122     with xf86_platform_devices[0] and devList[2], resulting in the
 9123     UDL device being set up as a GPU device assigned to the first screen
 9124     instead of as a framebuffer on the third screen as the configuration
 9125     specified.
 9126     
 9127     Checking Option "kmsdev" in code code may be a layering violation.
 9128     But the modesetting driver is actually part of the Xorg sources
 9129     instead of being an external driver, so he "kmsdev" path knowledge
 9130     may be used here.
 9131     
 9132     Signed-off-by: Böszörményi Zoltán <zboszor@pr.hu>
 9133 
 9134 commit a542224ea28e2e8ccaf5e0df85bf6c603e97599a
 9135 Author: Michel Dänzer <mdaenzer@redhat.com>
 9136 Date:   Fri Feb 7 12:15:07 2020 +0100
 9137 
 9138     xwayland: Call glamor_block_handler from xwl_screen_post_damage
 9139     
 9140     In between the two phases introduced by the previous change. This makes
 9141     sure all pending drawing to the new buffers is flushed before they're
 9142     committed to the Wayland server.
 9143 
 9144 commit f88d9b1f779835302e02e255fcd45989db7f488d
 9145 Author: Michel Dänzer <mdaenzer@redhat.com>
 9146 Date:   Fri Feb 7 12:06:39 2020 +0100
 9147 
 9148     xwayland: Split up xwl_screen_post_damage into two phases
 9149     
 9150     The first phase sets the new surface properties for all damaged
 9151     windows, then the second phase commits all surface updates.
 9152     
 9153     This is preparatory for the next change, there should be no observable
 9154     change in behaviour (other than the order of Wayland protocol
 9155     requests).
 9156     
 9157     Reviewed-by: Adam Jackson <ajax@redhat.com>
 9158 
 9159 commit 7b33c2d3f31fe03f88cc26f08590f2baf1a6ef36
 9160 Author: Michel Dänzer <mdaenzer@redhat.com>
 9161 Date:   Thu Feb 6 18:45:19 2020 +0100
 9162 
 9163     Revert "xwayland/glamor-gbm: Add xwl_glamor_gbm_post_damage hook"
 9164     
 9165     This reverts commit 9e85aa9c1fbf51ef00674e3a91aded4083a14a15.
 9166     
 9167     To be replaced with a better solution.
 9168     
 9169     Reviewed-by: Adam Jackson <ajax@redhat.com>
 9170 
 9171 commit 1310346d6052c91910f526cbdcc81061fe6abd94
 9172 Author: Michel Dänzer <mdaenzer@redhat.com>
 9173 Date:   Mon Feb 10 18:48:05 2020 +0100
 9174 
 9175     gitlab-ci: Add meson build job with glamor disabled
 9176     
 9177     To prevent breakage with glamor disabled from creeping in again.
 9178     
 9179     Reviewed-by: Adam Jackson <ajax@redhat.com>
 9180 
 9181 commit 72ccd7f540a36185ecdb62324c68496fb57e65fe
 9182 Author: Michel Dänzer <mdaenzer@redhat.com>
 9183 Date:   Mon Feb 10 18:44:11 2020 +0100
 9184 
 9185     gitlab-ci: Drop "-build-and-test" job name suffix
 9186     
 9187     It's long and kind of redundant.
 9188     
 9189     Reviewed-by: Adam Jackson <ajax@redhat.com>
 9190 
 9191 commit 49553049e871d03e9e26672843de8712d20f688a
 9192 Author: Michel Dänzer <mdaenzer@redhat.com>
 9193 Date:   Mon Feb 10 18:57:42 2020 +0100
 9194 
 9195     modesetting: Remove local variable only used with glamor enabled
 9196     
 9197     Resulted in a build failure with -Werror:
 9198     
 9199     ../hw/xfree86/drivers/modesetting/drmmode_display.c: In function ‘drmmode_crtc_set_mode’:
 9200     ../hw/xfree86/drivers/modesetting/drmmode_display.c:759:15: error: unused variable ‘screen’ [-Werror=unused-variable]
 9201       759 |     ScreenPtr screen = crtc->scrn->pScreen;
 9202           |               ^~~~~~
 9203     
 9204     Fixes: c66c548eabf0 "modesetting: Call glamor_finish from
 9205                          drmmode_crtc_set_mode"
 9206     Reviewed-by: Adam Jackson <ajax@redhat.com>
 9207 
 9208 commit 0cb9fa7949d6c5398de220fbdbe1e262e943fcbb
 9209 Author: Michel Dänzer <mdaenzer@redhat.com>
 9210 Date:   Mon Feb 10 18:41:44 2020 +0100
 9211 
 9212     modesetting: Fix build with glamor disabled
 9213     
 9214     Fixes: cb1b1e184723 "modesetting: Indirect the glamor API through
 9215                          LoaderSymbol"
 9216     Reviewed-by: Adam Jackson <ajax@redhat.com>
 9217 
 9218 commit bfb36a5806196e257958907bfcdd71c24acc5d37
 9219 Author: Pekka Paalanen <pekka.paalanen@collabora.com>
 9220 Date:   Mon Feb 10 16:07:41 2020 +0100
 9221 
 9222     randr: auto-bind of GPU is a config change
 9223     
 9224     When a GPU is auto-bound adding more outputs to a screen, that needs to count
 9225     as a configuration change on that screen so that a WM listening for
 9226     RRScreenChangeNotify gets notified and handles it as a hotplug. This is
 9227     particularly for cases where the outputs are already connected. Otherwise
 9228     nothing might happen.
 9229     
 9230     Issue #909 describes a real world case where plugging in a DisplayLink dock
 9231     with a monitor already connected is sometimes left inactive by GNOME. That
 9232     issue is a race, and requires adding a sleep(5); as the first thing in
 9233     NewGPUDeviceRequest() to reproduce reliably. With the sleep, the monitor in the
 9234     dock will never activate automatically. Add this fix over the sleep, and the
 9235     issue is gone.
 9236     
 9237     This fix was originally developed on a branch replicating Ubuntu 19.04 patch
 9238     set based on xserver 1.20.4. Testing on master branch was impossible due to
 9239     xorg/xserver#910.
 9240     
 9241     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/909
 9242     
 9243     Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
 9244     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9245 
 9246 commit 3aa754c3637694a2a3083b8fd9fba0bc862b1a67
 9247 Author: David Seifert <soap@gentoo.org>
 9248 Date:   Wed Feb 5 11:32:24 2020 +0100
 9249 
 9250     Always use `-fno-common` in CI
 9251     
 9252     * This prevents issues from creeping back in at a later stage.
 9253 
 9254 commit 1cfdd1a96580733df3625bcea3384ffee3dc92df
 9255 Author: Dave Airlie <airlied@redhat.com>
 9256 Date:   Tue Feb 4 16:02:06 2020 +1000
 9257 
 9258     modesetting: remove unnecessary error message, fix zaphod leases
 9259     
 9260     I introduced this error with the MST hotplug code, but it can trigger
 9261     on zaphod setups, and is perfectly fine. There is no support for
 9262     MST/hotplug on zaphod setups currently, so we can just skip over
 9263     the dynamic connector handling here. However we shouldn't skip
 9264     over the lease handling so move it into the codepath.
 9265     
 9266     Fixes: 9257b1252da9 ("modesetting: add dynamic connector hotplug support (MST) (v3)")
 9267     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9268     Signed-off-by: Dave Airlie <airlied@redhat.com>
 9269 
 9270 commit 9e85aa9c1fbf51ef00674e3a91aded4083a14a15
 9271 Author: Michel Dänzer <mdaenzer@redhat.com>
 9272 Date:   Thu Jan 30 12:29:03 2020 +0100
 9273 
 9274     xwayland/glamor-gbm: Add xwl_glamor_gbm_post_damage hook
 9275     
 9276     It flushes any pending drawing to the kernel, to make sure it'll be
 9277     visible to the Wayland server.
 9278     
 9279     Without this, it was possible for the Wayland server to process surface
 9280     commits before Xwayland got around to flushing the corresponding
 9281     drawing, which could result in stale or even completely random window
 9282     contents being visible.
 9283     
 9284     v2:
 9285     * Make EGL backend post_damage hook mandatory, don't check for NULL in
 9286       xwl_glamor_post_damage. (Olivier Fourdan)
 9287     
 9288     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/951
 9289     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9290 
 9291 commit 6a5e47c57d16de8b6a6a2636f3cbad1aebec32e2
 9292 Author: Michel Dänzer <mdaenzer@redhat.com>
 9293 Date:   Mon Jan 27 17:47:10 2020 +0100
 9294 
 9295     xfree86/modes: Bail from xf86RotateRedisplay if pScreen->root is NULL
 9296     
 9297     Avoids a crash in xf86RotatePrepare -> DamageRegister during
 9298     CreateScreenResources if rotation or another transform is configured for
 9299     any connected RandR output in xorg.conf. The generic rotation/transform
 9300     code generally can't work without the root window currently.
 9301     
 9302     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/969
 9303     Fixes: 094f42cdfe5d "xfree86/modes: Call xf86RotateRedisplay from
 9304                          xf86CrtcRotate"
 9305     Acked-by: Olivier Fourdan <ofourdan@redhat.com>
 9306     Reviewed-by: Adam Jackson <ajax@redhat.com>
 9307 
 9308 commit 578371616e09364318c9fb2371a693d438b31b29
 9309 Author: Daniel Llewellyn <daniel@bowlhat.net>
 9310 Date:   Wed Jan 29 21:33:24 2020 +0000
 9311 
 9312     os: Ignore dying client in ResetCurrentRequest
 9313     
 9314     You might as well, it's harmless. Better, some cleanup code (like DRI2
 9315     swap wait) needs to run both normally and at client exit, so it
 9316     simplifies the callers to not need to check first. See 4308f5d3 for a
 9317     similar example.
 9318     
 9319     Props: @ajax (Adam Jackson)
 9320     
 9321     Fixes: xorg/xserver#211
 9322     
 9323     Signed-off-by: Daniel Llewellyn <diddledan@ubuntu.com>
 9324 
 9325 commit b6a5389e1789d63c6c61983b973b8559953afc88
 9326 Author: Michel Dänzer <mdaenzer@redhat.com>
 9327 Date:   Tue Jan 28 18:39:10 2020 +0100
 9328 
 9329     gitlab-ci: Enable -Werror in the meson build job
 9330     
 9331     There are no warnings left, so let's prevent new ones from creeping
 9332     back in.
 9333 
 9334 commit 794fd7e563ca9430a4a29a8e9f1923c07c23a480
 9335 Author: Michel Dänzer <mdaenzer@redhat.com>
 9336 Date:   Tue Jan 28 18:35:45 2020 +0100
 9337 
 9338     tests/misc: Drop redundant screenInfo declaration
 9339     
 9340     GCC warned about it:
 9341     
 9342     ../test/misc.c:36:19: warning: redundant redeclaration of ‘screenInfo’ [-Wredundant-decls]
 9343        36 | extern ScreenInfo screenInfo;
 9344           |                   ^~~~~~~~~~
 9345     In file included from ../test/misc.c:30:
 9346     ../include/scrnintstr.h:688:29: note: previous declaration of ‘screenInfo’ was here
 9347       688 | extern _X_EXPORT ScreenInfo screenInfo;
 9348           |                             ^~~~~~~~~~
 9349 
 9350 commit 4287604425e7ff905036541829896d1ddf7c65d0
 9351 Author: Michel Dänzer <mdaenzer@redhat.com>
 9352 Date:   Tue Jan 28 18:31:13 2020 +0100
 9353 
 9354     Xephyr: Cast "red" to char* for xcb_aux_parse_color
 9355     
 9356     xcb_aux_parse_color takes a non-const pointer, even though it doesn't
 9357     modify the string or take ownership of its memory.
 9358     
 9359     Avoids the following warning from GCC:
 9360     
 9361     ../hw/kdrive/ephyr/hostx.c: In function ‘hostx_init’:
 9362     ../hw/kdrive/ephyr/hostx.c:683:30: warning: passing argument 1 of ‘xcb_aux_parse_color’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 9363       683 |     if (!xcb_aux_parse_color("red", &red, &green, &blue)) {
 9364           |                              ^~~~~
 9365     In file included from ../hw/kdrive/ephyr/hostx.c:50:
 9366     /usr/include/xcb/xcb_aux.h:194:27: note: expected ‘char *’ but argument is of type ‘const char *’
 9367       194 | xcb_aux_parse_color(char *color_name,
 9368           |                     ~~~~~~^~~~~~~~~~
 9369 
 9370 commit 65387391a551fff6fec808d48b9bf4b6181cb050
 9371 Author: Michel Dänzer <mdaenzer@redhat.com>
 9372 Date:   Tue Jan 28 18:22:45 2020 +0100
 9373 
 9374     loader: strdup const string assigned to local variable name
 9375     
 9376     There's a free(name) at the end of the function.
 9377     
 9378     GCC warned about this:
 9379     
 9380     ../hw/xfree86/loader/loadmod.c: In function ‘LoadModule’:
 9381     ../hw/xfree86/loader/loadmod.c:702:18: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 9382       702 |         m = name = "int10";
 9383           |                  ^
 9384 
 9385 commit e1fa3beb2fe2519e69f859f0acdc68e5a770de27
 9386 Author: Adam Jackson <ajax@redhat.com>
 9387 Date:   Tue Jan 28 13:26:41 2020 -0500
 9388 
 9389     Revert "dri2: Don't make reference to noClientException"
 9390     
 9391     It's true that the value would always be -1, if it's not zero, but it's
 9392     usually zero is the problem. As a result we return failure from
 9393     otherwise successful indirect GLX paths, which isn't very nice of us.
 9394     
 9395     This reverts commit 7d33ab0f8c7958b205076f71e4b47c24aace77fd.
 9396     
 9397     Fixes: https://gitlab.freedesktop.org/xorg/xserver/issues/211
 9398 
 9399 commit 435d41d5ffe5467f43225b59411ca9f9a05c10a6
 9400 Author: David Seifert <soap@gentoo.org>
 9401 Date:   Fri Jan 24 12:49:44 2020 +0100
 9402 
 9403     Fix building with `-fno-common`
 9404     
 9405     * GCC 10 will switch the default to `-fno-common`.
 9406       https://gcc.gnu.org/PR85678
 9407     
 9408     Bug: https://bugs.gentoo.org/705880
 9409     Signed-off-by: Matt Turner <mattst88@gmail.com>
 9410 
 9411 commit 83826075e59c0393c16d2a2482dc5c9f2fdf4564
 9412 Author: George Matsumura <gmmatsumura01@bvsd.org>
 9413 Date:   Thu Dec 26 23:01:26 2019 +0000
 9414 
 9415     Restrict 1x1 pixmap filling optimization to GXcopy
 9416     
 9417     This restricts an optimization whereby the filling of 1x1 pixmaps
 9418     went around the driver-provided function to cases where the
 9419     source color is meant to be directly copied to the destination,
 9420     as opposed to other operations which should produce different
 9421     destination values than just the foreground color.
 9422     
 9423     Signed-off-by: George Matsumura <gmmatsumura01@bvsd.org>
 9424     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9425 
 9426 commit 0839b0523a01067cb9c9b53ebdd9ce4c00f0eb12
 9427 Author: E5ten <ethancsommer@gmail.com>
 9428 Date:   Wed Jan 15 17:36:06 2020 +0000
 9429 
 9430     meson: add prefix to serverconfigdir
 9431     
 9432     fixes #853
 9433 
 9434 commit a24a786fc8490fda08b15c3dab6fa6750f008ecb
 9435 Author: Michel Dänzer <mdaenzer@redhat.com>
 9436 Date:   Tue Jan 14 09:23:34 2020 +0100
 9437 
 9438     modesetting: Explicitly #include "mi.h"
 9439     
 9440     For the miClearDrawable prototype. Apparently it doesn't get pulled in
 9441     for some build configurations, breaking the build.
 9442     
 9443     Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
 9444 
 9445 commit 25ca99df38a2c28c25ab20a917e68442285f2353
 9446 Author: Kenneth Graunke <kenneth@whitecape.org>
 9447 Date:   Mon Jan 13 23:34:49 2020 -0800
 9448 
 9449     configure: Define GLAMOR_HAS_EGL_QUERY_DRIVER when available
 9450     
 9451     Commit 195c2ef8f9f07b9bdabc0f554a9033b7857b99c7 added this to the Meson
 9452     build but neglected to add it to autotools.
 9453     
 9454     v2: Also update dix-config.h.in
 9455     
 9456     Fixes: 195c2ef8f ("glamor: Add a function to get the driver name via EGL_MESA_query_driver")
 9457     
 9458     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> [v1]
 9459     Reviewed-by: Eric Engestrom <eric@engestrom.ch> [v1]
 9460     Reviewed-by: Matt Turner <mattst88@gmail.com>
 9461 
 9462 commit 49456e0a37fac7bc9d1f01bc1519fb0d699956db
 9463 Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 9464 Date:   Fri Dec 27 23:33:37 2019 +0100
 9465 
 9466     hw/xfree86/common/xf86Init.c: fix build without glx
 9467     
 9468     Since commit d8ec33fe0542141aed1d9016d2ecaf52da944b4b, an include on
 9469     glxvndabi.h has been added to hw/xfree86/common/xf86Init.c
 9470     
 9471     However, if glx is disabled through --disable-glx and GLX headers are
 9472     not installed in the build's environment, build fails on:
 9473     
 9474     In file included from xf86Init.c:81:
 9475     ../../../include/glxvndabi.h:64:10: fatal error: GL/glxproto.h: No such file or directory
 9476        64 | #include <GL/glxproto.h>
 9477           |          ^~~~~~~~~~~~~~~
 9478     
 9479     Fix this failure by removing this include which does not seem to be
 9480     needed (an other option would have been to keep it under an ifdef GLXEXT
 9481     block)
 9482     
 9483     Fixes:
 9484      - http://autobuild.buildroot.org/results/de838a843f97673d1381a55fd4e9b07164693913
 9485     
 9486     Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
 9487 
 9488 commit 26004df63c25061586a967f3586795a75280acc2
 9489 Author: Lubomir Rintel <lkundrak@v3.sk>
 9490 Date:   Wed Dec 25 18:54:03 2019 +0100
 9491 
 9492     glamor_egl: Reject OpenGL < 2.1 early on
 9493     
 9494     The Etnaviv driver on GC2000 reports desktop OpenGL 1.3 but also OpenGL ES 2.0.
 9495     However, with the modesetting driver, GLES2 never gets a chance:
 9496     
 9497       [ 11233.393] Require OpenGL version 2.1 or later.
 9498       [ 11233.393] (EE) modeset(0): Failed to initialize glamor at ScreenInit() time.
 9499       [ 11233.393] (EE)
 9500       Fatal server error:
 9501       [ 11233.395] (EE) AddScreen/ScreenInit failed for driver 0
 9502     
 9503     Let's reject old desktop GL early on, just like XWayland seems to do.
 9504     
 9505     This is perhaps a slightly bit more complicated that one would expect, since we
 9506     need to call eglMakeCurrent() before we query the GL version.
 9507     
 9508     Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
 9509 
 9510 commit 98bfee6a1b901a6f886d74dcc9fd3cbb68838375
 9511 Author: Michel Dänzer <mdaenzer@redhat.com>
 9512 Date:   Mon Dec 23 09:26:17 2019 +0100
 9513 
 9514     xwayland: Include xwayland-window.h from xwayland-glamor-eglstream.c
 9515     
 9516     Fixes build failure.
 9517     
 9518     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/954
 9519     Fixes: 89e32d00f6e0 "xwayland: Move Xwayland windows to its own sources"
 9520     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 9521     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9522 
 9523 commit e914fb16adcab8807a280450d5cdfff4bbdce96b
 9524 Author: Michel Dänzer <mdaenzer@redhat.com>
 9525 Date:   Mon Dec 23 09:53:26 2019 +0100
 9526 
 9527     gitlab-ci: Install libnvidia-egl-wayland-dev package
 9528     
 9529     In order to build-test the Xwayland eglstream code.
 9530     
 9531     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 9532     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9533 
 9534 commit a52122c7f2697361f53e82ac384ff3f4eba24c76
 9535 Author: Michel Dänzer <mdaenzer@redhat.com>
 9536 Date:   Mon Dec 23 09:32:07 2019 +0100
 9537 
 9538     gitlab-ci: Use sorted lists of distro packages, one per line
 9539     
 9540     This will make it easier to review changes.
 9541     
 9542     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 9543     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9544 
 9545 commit 37a64ede3b545cda9edde65c65c02054d2da43cb
 9546 Author: Michel Dänzer <mdaenzer@redhat.com>
 9547 Date:   Mon Dec 23 09:51:43 2019 +0100
 9548 
 9549     gitlab-ci: Strip down docker image contents more
 9550     
 9551     Making the image significantly smaller.
 9552     
 9553     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 9554     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9555 
 9556 commit 23b72d8e4b624ffd81a35e3b62be2430051a6ffa
 9557 Author: Michel Dänzer <mdaenzer@redhat.com>
 9558 Date:   Mon Dec 23 09:35:09 2019 +0100
 9559 
 9560     gitlab-ci: Use -j4 instead of -j$(proc)
 9561     
 9562     The shared GitLab CI runners are configured for jobs making use of up
 9563     to 4 CPU cores, attempting to use more may overload them.
 9564     
 9565     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 9566     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9567 
 9568 commit 9107a610deb130d0e4ddee92d6ca9a08a8e103f3
 9569 Author: Michel Dänzer <mdaenzer@redhat.com>
 9570 Date:   Mon Dec 23 10:41:32 2019 +0100
 9571 
 9572     gitlab-ci: Use host-mapped directory for ccache
 9573     
 9574     Same as done in Mesa.
 9575     
 9576     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
 9577     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9578 
 9579 commit 4226c6d0329df440551b7b91ae573a82c64a1ac9
 9580 Author: Aaron Plattner <aplattner@nvidia.com>
 9581 Date:   Thu Dec 26 13:40:17 2019 -0800
 9582 
 9583     modesetting: Check whether RandR was initialized before calling rrGetScrPriv
 9584     
 9585     Calling rrGetScrPriv when RandR isn't initialized causes an assertion
 9586     failure that aborts the server:
 9587     
 9588      Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion `key->initialized' failed.
 9589     
 9590      Thread 1 "Xorg" received signal SIGABRT, Aborted.
 9591      0x00007ffff78a8f25 in raise () from /usr/lib/libc.so.6
 9592      (gdb) bt
 9593      #0  0x00007ffff78a8f25 in raise () from /usr/lib/libc.so.6
 9594      #1  0x00007ffff7892897 in abort () from /usr/lib/libc.so.6
 9595      #2  0x00007ffff7892767 in __assert_fail_base.cold () from /usr/lib/libc.so.6
 9596      #3  0x00007ffff78a1526 in __assert_fail () from /usr/lib/libc.so.6
 9597      #4  0x00007ffff7fb57c1 in dixGetPrivateAddr (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:121
 9598      #5  0x00007ffff7fb5822 in dixGetPrivate (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:136
 9599      #6  0x00007ffff7fb586a in dixLookupPrivate (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:166
 9600      #7  0x00007ffff7fb8445 in CreateScreenResources (pScreen=0x555555ab1790) at ../hw/xfree86/drivers/modesetting/driver.c:1335
 9601      #8  0x000055555576c5e4 in xf86CrtcCreateScreenResources (screen=0x555555ab1790) at ../hw/xfree86/modes/xf86Crtc.c:744
 9602      #9  0x00005555555d8bb6 in dix_main (argc=4, argv=0x7fffffffead8, envp=0x7fffffffeb00) at ../dix/main.c:214
 9603      #10 0x00005555557a4f0b in main (argc=4, argv=0x7fffffffead8, envp=0x7fffffffeb00) at ../dix/stubmain.c:34
 9604     
 9605     This can happen, for example, if the server is configured with Xinerama
 9606     and there is more than one X screen:
 9607     
 9608      Section "ServerLayout"
 9609        Identifier "crash"
 9610        Screen 0 "modesetting"
 9611        Screen 1 "dummy" RightOf "modesetting"
 9612        Option "Xinerama"
 9613      EndSection
 9614     
 9615      Section "Device"
 9616        Identifier "modesetting"
 9617        Driver "modesetting"
 9618      EndSection
 9619     
 9620      Section "Screen"
 9621        Identifier "modesetting"
 9622        Device "modesetting"
 9623      EndSection
 9624     
 9625      Section "Device"
 9626        Identifier "dummy"
 9627        Driver "dummy"
 9628      EndSection
 9629     
 9630      Section "Screen"
 9631        Identifier "dummy"
 9632        Device "dummy"
 9633      EndSection
 9634     
 9635     The problem does not reproduce if there is only one X screen because of
 9636     this code in xf86RandR12Init:
 9637     
 9638      #ifdef PANORAMIX
 9639          /* XXX disable RandR when using Xinerama */
 9640          if (!noPanoramiXExtension) {
 9641              if (xf86NumScreens == 1)
 9642                  noPanoramiXExtension = TRUE;
 9643              else
 9644                  return TRUE;
 9645          }
 9646      #endif
 9647     
 9648     Fix the problem by checking dixPrivateKeyRegistered(rrPrivKey) before
 9649     calling rrGetScrPriv. This is similar to what the xf86-video-amdgpu
 9650     driver does:
 9651     https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/blob/fd66f5c0bea2b7c22a47bfd5eb1f22d32d166d9c/src/amdgpu_kms.c#L388
 9652     
 9653     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
 9654     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9655 
 9656 commit b1ee4036bfd59dfd506ed8312b63edffc913b1c1
 9657 Author: Michel Dänzer <mdaenzer@redhat.com>
 9658 Date:   Mon Dec 23 10:06:25 2019 +0100
 9659 
 9660     gitlab-ci: Mark jobs as interruptible
 9661     
 9662     Allowing redundant pipelines to be automatically cancelled.
 9663 
 9664 commit 1e9c63beddb3010bb1f6eb96679410ca0aca037e
 9665 Author: Michel Dänzer <mdaenzer@redhat.com>
 9666 Date:   Mon Dec 23 10:03:20 2019 +0100
 9667 
 9668     gitlab-ci: Turn .retry YAML anchor into .ci-run-policy template
 9669     
 9670     To match Mesa.
 9671 
 9672 commit 456dff1bf890459840718339279dcb84d36531eb
 9673 Author: Alex Goins <agoins@nvidia.com>
 9674 Date:   Thu Dec 12 20:18:53 2019 -0600
 9675 
 9676     modesetting: Fix msSharePixmapBacking Segfault Regression
 9677     
 9678     Commit cb1b1e184 modified msSharePixmapBacking() to derive modesettingPtr from
 9679     the 'screen' argument. Unfortunately, the name of the argument is misleading --
 9680     the screen is the slave screen. If the master is modesetting,
 9681     and the slave is not modesetting, it will segfault.
 9682     
 9683     To fix the problem, this change derives modesettingPtr from
 9684     ppix->drawable.pScreen. This method is already used when calling
 9685     ms->glamor.shareable_fd_from_pixmap() later in the function.
 9686     
 9687     To avoid future issues, this change also renames the 'screen' argument to
 9688     'slave'.
 9689     
 9690     Signed-off-by: Alex Goins <agoins@nvidia.com>
 9691     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9692 
 9693 commit 58155baeac494c95a45d99d44dd9307e8aedd2af
 9694 Author: Olivier Fourdan <ofourdan@redhat.com>
 9695 Date:   Wed Dec 18 15:00:11 2019 +0100
 9696 
 9697     xwayland: Cleanup and remove `xwayland.h`
 9698     
 9699     Now that each source and header should be in order, we can safely cleaup
 9700     the last remaining bits from the main `xwayland.h` which is not needed
 9701     anymore and can be removed.
 9702     
 9703     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9704     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9705 
 9706 commit c830bd847fa5b60db95dcbb54dde3868f2a31a9a
 9707 Author: Olivier Fourdan <ofourdan@redhat.com>
 9708 Date:   Wed Dec 18 10:33:16 2019 +0100
 9709 
 9710     xwayland: Remove `MODIFIER_META` definition
 9711     
 9712     It's nowhere to be used.
 9713     
 9714     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9715     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9716 
 9717 commit 4c644fd792e642fc566f7b0b08bc000ecf641a50
 9718 Author: Olivier Fourdan <ofourdan@redhat.com>
 9719 Date:   Wed Dec 18 14:13:34 2019 +0100
 9720 
 9721     xwayland: Move Xwayland GLX declaration
 9722     
 9723     Move the Xwayland GLX declaration to its own header file.
 9724     
 9725     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9726     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9727 
 9728 commit 808a0a038b945171e0c6e18093fe1b9daeafe26a
 9729 Author: Olivier Fourdan <ofourdan@redhat.com>
 9730 Date:   Wed Dec 18 11:18:22 2019 +0100
 9731 
 9732     xwayland: Move Xwayland vidmode declaration
 9733     
 9734     Move the Xwayland vidmode declaration to its own header file.
 9735     
 9736     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9737     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9738 
 9739 commit e8ba8a94e120abf78886ca809f0bf01e7258367c
 9740 Author: Olivier Fourdan <ofourdan@redhat.com>
 9741 Date:   Wed Dec 18 10:56:34 2019 +0100
 9742 
 9743     xwayland: Move Xwayland CVT declaration
 9744     
 9745     Move the Xwayland CVT declaration to its own header file.
 9746     
 9747     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9748     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9749 
 9750 commit 0617c635fa3577965c5fa198ed4e57da8fee919d
 9751 Author: Olivier Fourdan <ofourdan@redhat.com>
 9752 Date:   Wed Dec 18 10:03:43 2019 +0100
 9753 
 9754     xwayland: Separate Xwayland screen code
 9755     
 9756     Move Xwayland screen related code to a separate source file and header.
 9757     
 9758     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9759     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9760 
 9761 commit 211609a9387a5fb0df83ef6ddea59ef817ea2f59
 9762 Author: Olivier Fourdan <ofourdan@redhat.com>
 9763 Date:   Wed Dec 18 10:45:17 2019 +0100
 9764 
 9765     xwayland: Move Xwayland cursor declarations
 9766     
 9767     Move the Xwayland cursor declarations to their own header file.
 9768     
 9769     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9770     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9771 
 9772 commit aaeeb10b74920110c36efe069a47722bda5063dd
 9773 Author: Olivier Fourdan <ofourdan@redhat.com>
 9774 Date:   Tue Dec 17 18:02:17 2019 +0100
 9775 
 9776     xwayland: Move Xwayland output declarations
 9777     
 9778     Move the Xwayland output declarations to their own header file.
 9779     
 9780     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9781     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9782 
 9783 commit 091b24f13e3a9cf46f1c55ba0ba3f35e0bb41a59
 9784 Author: Olivier Fourdan <ofourdan@redhat.com>
 9785 Date:   Tue Dec 17 17:40:21 2019 +0100
 9786 
 9787     xwayland: Move Xwayland input declarations
 9788     
 9789     Move the Xwayland input declarations to their own header file.
 9790     
 9791     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9792     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9793 
 9794 commit e23d2223d89ee9ae7977b028f2a6522707e921d6
 9795 Author: Olivier Fourdan <ofourdan@redhat.com>
 9796 Date:   Tue Dec 17 17:18:11 2019 +0100
 9797 
 9798     xwayland: Move Xwayland present declarations
 9799     
 9800     Move the Xwayland Present declarations to their own header file.
 9801     
 9802     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9803     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9804 
 9805 commit d780bdc2fdaeb94b873a9b6dd05a3ab636840ce7
 9806 Author: Olivier Fourdan <ofourdan@redhat.com>
 9807 Date:   Tue Dec 17 17:07:58 2019 +0100
 9808 
 9809     xwayland: Separate Xwayland pixmap code
 9810     
 9811     Move Xwayland generic pixmap code to a separate source file and header.
 9812     
 9813     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9814     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9815 
 9816 commit 89e32d00f6e03fcdab267bfd9f0b0c5c2747d380
 9817 Author: Olivier Fourdan <ofourdan@redhat.com>
 9818 Date:   Tue Dec 17 15:07:07 2019 +0100
 9819 
 9820     xwayland: Move Xwayland windows to its own sources
 9821     
 9822     Over time, Xwayland main source file `xwayland.c` has grown in size
 9823     which makes it look cluttered and harder to read.
 9824     
 9825     Move the code dealing with Xwayland window to its own source and header
 9826     files.
 9827     
 9828     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9829     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9830 
 9831 commit 3a59650ba74e9d97473fa39269fdb74ad7e1cd43
 9832 Author: Olivier Fourdan <ofourdan@redhat.com>
 9833 Date:   Mon Dec 16 17:23:30 2019 +0100
 9834 
 9835     xwayland: Move GLAMOR declarations to their own header
 9836     
 9837     Currently, `xwayland.h` contains all the declarations, which is a bit
 9838     awkward and hard to follow.
 9839     
 9840     Move the GLAMOR relevant declarations to their own header file.
 9841     
 9842     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9843     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9844 
 9845 commit 177c8a230232d114cdbe1650bd22a396d182f5f8
 9846 Author: Olivier Fourdan <ofourdan@redhat.com>
 9847 Date:   Mon Dec 16 17:07:02 2019 +0100
 9848 
 9849     xwayland: Move SHM declarations to their own header
 9850     
 9851     Currently, `xwayland.h` contains all the declarations, which is a bit
 9852     awkward and hard to follow.
 9853     
 9854     Move the SHM relevant declarations to their own header file.
 9855     
 9856     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9857     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9858 
 9859 commit c20e61fddc8c2b8838533f23f54c1c5acea3e05f
 9860 Author: Olivier Fourdan <ofourdan@redhat.com>
 9861 Date:   Tue Dec 17 08:48:51 2019 +0100
 9862 
 9863     xwayland: Move Xwayland structures to their own header
 9864     
 9865     Currently, `xwayland.h` contains all the declarations, which is a bit
 9866     awkward and hard to follow.
 9867     
 9868     Move the Xwayland structures declarations to their own header file.
 9869     
 9870     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9871     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9872 
 9873 commit 5bfca0038e92d61e58d4dc1a54748faef8273023
 9874 Author: Michel Dänzer <mdaenzer@redhat.com>
 9875 Date:   Wed Dec 18 18:18:50 2019 +0100
 9876 
 9877     glamor: Only use dual blending with GLSL >= 1.30
 9878     
 9879     It can't be used with older GLSL. Fixes a crash when attempting to
 9880     anyway.
 9881     
 9882     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/97
 9883     Fixes: e7308b6c7756 "glamor: Add support for CA rendering in a single pass."
 9884     Reviewed-by: Dave Airlie <airlied@redhat.com>
 9885     Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
 9886 
 9887 commit 846e81ecb83f30b555ce71a32cd6965d7b9939a5
 9888 Author: Michel Dänzer <mdaenzer@redhat.com>
 9889 Date:   Tue Dec 17 18:39:17 2019 +0100
 9890 
 9891     xwayland: Create duplicate TrueColor GLXFBConfigs for Composite
 9892     
 9893     Similar to what is done in Xorg. Not doing this prevented apps from
 9894     using GLX with a Composite visual, e.g. Firefox WebRender or Chromium.
 9895     
 9896     v2:
 9897     * Fix inverted direct_color test, fixes Chromium as well.
 9898     * Drop Composite extension guards, since other Xwayland code calls
 9899       compRedirectWindow/compUnredirectWindow unconditionally anyway.
 9900     
 9901     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/921
 9902     Fixes: 8469241592b94b "xwayland: Add EGL-backed GLX provider"
 9903     Reviewed-by: Adam Jackson <ajax@redhat.com> # v1
 9904 
 9905 commit 02e7a497ceacef490921a8ae7115cd9f28a66dec
 9906 Author: Michel Dänzer <mdaenzer@redhat.com>
 9907 Date:   Tue Dec 17 18:43:07 2019 +0100
 9908 
 9909     xwayland: Fix duplicate "direct_color" comment to say "double_buffer"
 9910     
 9911     Fixes: 8469241592b94b "xwayland: Add EGL-backed GLX provider"
 9912     Reviewed-by: Adam Jackson <ajax@redhat.com>
 9913 
 9914 commit 9b31358c52e951883bf7c01c953a9da080542244
 9915 Author: Michel Dänzer <mdaenzer@redhat.com>
 9916 Date:   Wed Nov 27 18:56:05 2019 +0100
 9917 
 9918     xwayland: Use frame callbacks for Present vblank events
 9919     
 9920     Instead of only the fallback timer.
 9921     
 9922     Fixes https://gitlab.freedesktop.org/xorg/xserver/issues/854
 9923     
 9924     v2:
 9925     * Drop unused frame_callback member of struct xwl_present_window
 9926       (Olivier Fourdan)
 9927     
 9928     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9929 
 9930 commit c5067feaeea115761f0a72f37407c6e5e943d1a1
 9931 Author: Michel Dänzer <mdaenzer@redhat.com>
 9932 Date:   Wed Nov 27 18:04:06 2019 +0100
 9933 
 9934     xwayland: Use single frame callback for Present flips and normal updates
 9935     
 9936     Using a list of Present windows that need to be called back.
 9937     
 9938     This prepares for the following change, there should be no change in
 9939     observed behaviour.
 9940     
 9941     v2:
 9942     * Use xwl_window_create_frame_callback instead of making the
 9943       frame_listener struct non-static (Olivier Fourdan)
 9944     
 9945     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9946 
 9947 commit f80eea0529b2cfb805a9c7d4994a4235451131e3
 9948 Author: Michel Dänzer <mdaenzer@redhat.com>
 9949 Date:   Fri Dec 13 18:26:35 2019 +0100
 9950 
 9951     xwayland: Add xwl_window_create_frame_callback helper
 9952     
 9953     This will be used by the following changes. No functional change
 9954     intended.
 9955     
 9956     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
 9957 
 9958 commit 46e5236bbe0ca90f1c2a480c54d3f729d4930dfb
 9959 Author: Olivier Fourdan <ofourdan@redhat.com>
 9960 Date:   Thu Dec 12 13:50:16 2019 +0100
 9961 
 9962     xwayland: Take border width into account
 9963     
 9964     Damage coordinates are relative to the drawable, (0,0) being the top
 9965     left corner inside the border.
 9966     
 9967     Therefore, when applying damages or accumulating damages between window
 9968     buffers, we need to take the window border width into account as well,
 9969     otherwise the updates might be only partial or misplaced.
 9970     
 9971     Related: https://gitlab.freedesktop.org/xorg/xserver/issues/951
 9972     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9973     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9974 
 9975 commit 1cb886bc2a3e556b15779300350ec8867b4f907e
 9976 Author: Olivier Fourdan <ofourdan@redhat.com>
 9977 Date:   Fri Dec 13 11:10:03 2019 +0100
 9978 
 9979     xwayland: Recycle window buffers when setting pixmap
 9980     
 9981     Right now, we would recycle the window buffers whenever the window the
 9982     window is resized.
 9983     
 9984     This, however, is not sufficient to guarantee that the buffers are up
 9985     to date, since changing the window border width for example would not
 9986     trigger a `WindowResize` (the border being outside the window).
 9987     
 9988     Make sure we recycle the buffers on `SetWindowPixmap` to ensure that
 9989     the buffers will be recycled whenever the pixmap size is changed.
 9990     
 9991     Related: https://gitlab.freedesktop.org/xorg/xserver/issues/951
 9992     Suggested-by: Michel Dänzer <mdaenzer@redhat.com>
 9993     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
 9994     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
 9995 
 9996 commit 71c3a97142265804d64f443bd1ddb68ac356f8a3
 9997 Author: dslater38 <dslater38@gmail.com>
 9998 Date:   Thu Dec 12 04:54:46 2019 +0000
 9999 
10000     XWin: Fix infinite loop in GetShift()
10001     
10002     GetShift(int mask) can be called with mask==0, causing
10003     it to go into an infinite loop.
10004     
10005     Note: GetShift(mask) will return 0 for a mask of
10006     both 0 and -1. The assumption is that if mask == 0,
10007     then the corresponding bits for which we're calculating
10008     the shift, are also 0.
10009 
10010 commit 0c729bb958375fbd8fb6811ff1ecc88bd9f80282
10011 Author: Peter Hutterer <peter.hutterer@who-t.net>
10012 Date:   Thu Dec 12 09:23:47 2019 +1000
10013 
10014     gitlab CI: update to the latest version of the ci-templates
10015     
10016     Primarily to fix the skopeo copy issue that causes pipelines to fail right
10017     now, see ci-templates commit 0a9bdd33a98f05af67.
10018     
10019     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10020 
10021 commit 2a2234ad1a0fe88400c1511fea67741e4ad09f7f
10022 Author: Michel Dänzer <mdaenzer@redhat.com>
10023 Date:   Fri Nov 29 09:40:13 2019 +0100
10024 
10025     xwayland: Do flush GPU work in xwl_present_flush
10026     
10027     The Present code sends the idle notification event to the client after
10028     xwl_present_flush returns. If we don't flush our GPU work here, the
10029     client may race to draw another frame to the same buffer, so we may end
10030     up copying (parts of) that new frame instead of the one we meant to.
10031     
10032     Fixes https://gitlab.freedesktop.org/xorg/xserver/issues/835
10033     
10034     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
10035 
10036 commit cd999f08c608458d6207110ed237c3a78441870b
10037 Author: Olivier Fourdan <ofourdan@redhat.com>
10038 Date:   Fri Oct 25 16:28:50 2019 +0200
10039 
10040     xwayland: Use multiple window buffers
10041     
10042     Xwayland takes care of not attaching a new buffer if a frame callback is
10043     pending.
10044     
10045     Yet, the existing buffer (which was previously attached) may still be
10046     updated from the X11 side, causing unexpected visual glitches to the
10047     buffer.
10048     
10049     Add multiple buffering to the xwl_window and alternate between buffers,
10050     to leave the Wayland buffer untouched between frame callbacks and avoid
10051     stuttering or tearing issues.
10052     
10053     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/835
10054     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10055     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10056 
10057 commit 1c6f875f52d74d2137161399e134c4888c4eadf2
10058 Author: Olivier Fourdan <ofourdan@redhat.com>
10059 Date:   Wed Nov 6 11:49:33 2019 +0100
10060 
10061     xwayland: Add multiple window buffering support
10062     
10063     Add a mechanism to create, recycle and destroy window buffers when
10064     needed.
10065     
10066     Typically, this adds a new `xwl_window_buffer` structure which
10067     represents a buffer for a given Xwayland window.
10068     
10069     Each Xwayland window has two different pools of buffers:
10070     
10071      - The available buffers pool:
10072        Those are buffers which where created previously and that have either
10073        not been submitted to the compositor or submitted and released.
10074     
10075      - The unavailable buffers pool:
10076        Those are typically the buffers which are being used by the
10077        compositor, awaiting a release.
10078     
10079     Initially, an Xwayland window starts with both pools empty. As soon as a
10080     new buffer is needed, it's either created (if there is none available)
10081     or picked from the pool of available buffers.
10082     
10083     Once submitted to the compositor, the buffer is moved to the pool of
10084     unavailable buffers. When the corresponding `wl_buffer` is released by
10085     the compositor, it is moved back to pool of available buffers again to
10086     be reused when needed.
10087     
10088     To avoid keeping too many buffers around doing nothing, a garbage
10089     collection of older, unused buffers also takes care of disposing the
10090     buffers being unused for some time.
10091     
10092     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10093     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10094 
10095 commit 77658741869f6a01cec0bdf49827494fb0f06edf
10096 Author: Olivier Fourdan <ofourdan@redhat.com>
10097 Date:   Wed Oct 30 13:17:34 2019 +0100
10098 
10099     xwayland: Add buffer release callback
10100     
10101     The API `wl_buffer_add_listener` is misleading in the sense that there
10102     can be only one `wl_buffer` release callback, and trying to add a new
10103     listener when once is already in place will lead to a protocol error.
10104     
10105     The Xwayland EGL backends may need to set up their own `wl_buffer`
10106     release listener, meaning that there is no way to our own `wl_buffer`
10107     release callback.
10108     
10109     To avoid the problem, add our own callback API to be notified when the
10110     `wl_buffer` associated with an `xwl_pixmap` is released, triggered from
10111     the different `xwl_pixmap` implementations.
10112     
10113     Also update the Present code to use the new buffer release callback API.
10114     
10115     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10116     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10117 
10118 commit 8d4be7f6c4f7c673d7ec1a6bfdef944907a3916e
10119 Author: Kenneth Graunke <kenneth@whitecape.org>
10120 Date:   Thu Nov 21 23:03:50 2019 -0800
10121 
10122     modesetting: Use EGL_MESA_query_driver to select DRI driver if possible
10123     
10124     New now ask Glamor to use EGL_MESA_query_driver to obtain the DRI driver
10125     name; if successful, we use that as the DRI driver name.  Following the
10126     existing dri2.c logic, we also use the same name for the VDPAU driver,
10127     except for i965 (and now iris), where we switch to the "va_gl" fallback.
10128     
10129     This allows us to bypass the PCI ID lists in xserver and centralize the
10130     driver selection mechanism inside Mesa.  The hope is that we no longer
10131     have to update these lists for any future hardware.
10132 
10133 commit 195c2ef8f9f07b9bdabc0f554a9033b7857b99c7
10134 Author: Kenneth Graunke <kenneth@whitecape.org>
10135 Date:   Thu Nov 21 23:01:28 2019 -0800
10136 
10137     glamor: Add a function to get the driver name via EGL_MESA_query_driver
10138     
10139     This maps to eglGetDisplayDriverName if EGL_MESA_query_render is
10140     supported, otherwise it returns NULL.
10141 
10142 commit 60003023fa5b301dd621da4797f8a93035ebeeca
10143 Author: Michel Dänzer <mdaenzer@redhat.com>
10144 Date:   Fri Nov 22 18:32:38 2019 +0100
10145 
10146     modesetting: Use glamor_clear_pixmap in drmmode_clear_pixmap
10147     
10148     Should be slightly more efficient.
10149     
10150     Reviewed-by: Adam Jackson <ajax@redhat.com>
10151 
10152 commit 9ba13bac9dd076f166ff0d063fc144b904a40d12
10153 Author: Michel Dänzer <mdaenzer@redhat.com>
10154 Date:   Mon Nov 18 18:06:28 2019 +0100
10155 
10156     modesetting: Clear new screen pixmap storage on RandR resize
10157     
10158     Fixes random garbage being visible intermittently.
10159     
10160     Reviewed-by: Adam Jackson <ajax@redhat.com>
10161 
10162 commit 327df450ffcf5bda5b4254db0208d355860d1010
10163 Author: Michel Dänzer <mdaenzer@redhat.com>
10164 Date:   Fri Nov 22 17:51:22 2019 +0100
10165 
10166     xfree86/modes: Call xf86RotateRedisplay from xf86CrtcRotate
10167     
10168     If a new rotate buffer was allocated. This makes sure the new buffer
10169     has valid transformed contents when it starts being displayed.
10170     
10171     Reviewed-by: Adam Jackson <ajax@redhat.com>
10172 
10173 commit c66c548eabf06835cb0cb906598fb87c7bb30cf4
10174 Author: Michel Dänzer <mdaenzer@redhat.com>
10175 Date:   Fri Nov 22 17:58:12 2019 +0100
10176 
10177     modesetting: Call glamor_finish from drmmode_crtc_set_mode
10178     
10179     This makes sure any pending drawing to a new scanout buffer will be
10180     visible from the start.
10181     
10182     This makes the finish call in drmmode_copy_fb superfluous, so remove it.
10183     
10184     Reviewed-by: Adam Jackson <ajax@redhat.com>
10185 
10186 commit 06ef320e9bc1f1098df9cd5581f072528f28128e
10187 Author: Michel Dänzer <mdaenzer@redhat.com>
10188 Date:   Fri Nov 22 18:05:04 2019 +0100
10189 
10190     modesetting: Add glamor_finish() convenience macro
10191     
10192     This will simplify backporting the following fix to the 1.20 branch.
10193     
10194     Reviewed-by: Adam Jackson <ajax@redhat.com>
10195 
10196 commit e6ab7f9f342f463092c45226f3294074351fdd5e
10197 Author: Matt Turner <mattst88@gmail.com>
10198 Date:   Thu Nov 21 11:23:18 2019 -0500
10199 
10200     xfree86: Test presence of isastream()
10201     
10202     isastream() was never more than a stub in glibc, and was removed in
10203     glibc-2.30 by commit a0a0dc83173c ("Remove obsolete, never-implemented
10204     XSI STREAMS declarations").
10205     
10206     Bug: https://bugs.gentoo.org/700838
10207     Reviewed-by: Julien Cristau <jcristau@debian.org>
10208     Signed-off-by: Matt Turner <mattst88@gmail.com>
10209 
10210 commit ebf549db2d9341d99e0d0847b948dd798d98f7dc
10211 Author: Dor Askayo <dor.askayo@gmail.com>
10212 Date:   Fri Nov 22 17:12:03 2019 +0100
10213 
10214     glamor: make sure the correct FBO is cleared
10215     
10216     This also removes an unnecesary call to glDrawBuffer.
10217     
10218     Signed-off-by: Dor Askayo <dor.askayo@gmail.com>
10219     Fixes: 0e9a0c20 - "xwayland: clear pixmaps after creation in rootless
10220                        mode"
10221     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/933
10222     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10223 
10224 commit cb1b1e184723fc4748b9a28736fa07fdc5c2990c
10225 Author: Adam Jackson <ajax@redhat.com>
10226 Date:   Mon Nov 18 16:46:44 2019 -0500
10227 
10228     Revert "Revert "modesetting: Indirect the glamor API through LoaderSymbol""
10229     
10230     Now that we've fixed LoaderSymbolFromModule this should work properly.
10231     
10232     This reverts commit 5c7c6d5cffa98e4749185af9211d7642b57673d8.
10233     
10234     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10235 
10236 commit ab61c16ef07fde6eb7110c63c344c54eb2a2d117
10237 Author: Adam Jackson <ajax@redhat.com>
10238 Date:   Mon Nov 18 16:43:50 2019 -0500
10239 
10240     loader: Make LoaderSymbolFromModule take a ModuleDescPtr
10241     
10242     The thing you get back from xf86LoadSubModule is a ModuleDescPtr, not a
10243     dlsym handle. We don't expose ModuleDescPtr to the drivers, so change
10244     LoaderSymbolFromModule to cast its void * argument to a ModuleDescPtr.
10245     
10246     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10247 
10248 commit 4308f5d3d1fbd0f5dce81e22c0c3f08c65a7c9d8
10249 Author: Aaron Plattner <aplattner@nvidia.com>
10250 Date:   Tue Nov 19 10:08:51 2019 -0800
10251 
10252     os: Don't crash in AttendClient if the client is gone
10253     
10254     If a client is in the process of being closed down, then its client->osPrivate
10255     pointer will be set to NULL by CloseDownConnection. This can cause a crash if
10256     freeing the client's resources results in a call to AttendClient. For example,
10257     if the client has a pending sync fence:
10258     
10259      Thread 1 "X" received signal SIGSEGV, Segmentation fault.
10260      AttendClient (client=0x5571c4aed9a0) at ../os/connection.c:942
10261      (gdb) bt
10262      #0  AttendClient (client=0x5571c4aed9a0) at ../os/connection.c:942
10263      #1  0x00005571c3dbb865 in SyncAwaitTriggerFired (pTrigger=<optimized out>) at ../Xext/sync.c:694
10264      #2  0x00005571c3dd5749 in miSyncDestroyFence (pFence=0x5571c5063980) at ../miext/sync/misync.c:120
10265      #3  0x00005571c3dbbc69 in FreeFence (obj=<optimized out>, id=<optimized out>) at ../Xext/sync.c:1909
10266      #4  0x00005571c3d7a01d in doFreeResource (res=0x5571c506e3d0, skip=skip@entry=0) at ../dix/resource.c:880
10267      #5  0x00005571c3d7b1dc in FreeClientResources (client=0x5571c4aed9a0) at ../dix/resource.c:1146
10268      #6  FreeClientResources (client=0x5571c4aed9a0) at ../dix/resource.c:1109
10269      #7  0x00005571c3d5525f in CloseDownClient (client=0x5571c4aed9a0) at ../dix/dispatch.c:3473
10270      #8  0x00005571c3d55eeb in Dispatch () at ../dix/dispatch.c:492
10271      #9  0x00005571c3d59e96 in dix_main (argc=3, argv=0x7ffe7854bc28, envp=<optimized out>) at ../dix/main.c:276
10272      #10 0x00007fea4837cb6b in __libc_start_main (main=0x5571c3d1d060 <main>, argc=3, argv=0x7ffe7854bc28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe7854bc18) at ../csu/libc-start.c:308
10273      #11 0x00005571c3d1d09a in _start () at ../Xext/sync.c:2378
10274      (gdb) print client->osPrivate
10275      $1 = (void *) 0x0
10276     
10277     Since the client is about to be freed, its ignore count doesn't matter and
10278     AttendClient can simply be a no-op. Check for client->clientGone in AttendClient
10279     and remove similar checks from two callers that had them.
10280     
10281     Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
10282 
10283 commit 66da95a172c4941b75ffedcdaa0138c0a48f11fb
10284 Author: Olivier Fourdan <ofourdan@redhat.com>
10285 Date:   Tue Nov 12 10:03:55 2019 +0100
10286 
10287     xwayland: Do not discard frame callbacks on allow commits
10288     
10289     Currently, when a X11 client (usually the X11 window manager from a
10290     Wayland compositor) changes the value of the X11 property
10291     `_XWAYLAND_ALLOW_COMMITS` from `false` to `true`, all pending frame
10292     callbacks on the window are discarded so that the commit occurs
10293     immediately.
10294     
10295     Weston uses that mechanism to prevent the content of the window from
10296     showing before it's ready when mapping the window initially, but
10297     discarding the pending frame callbacks has no effect on the initial
10298     mapping of the X11 window since at that point there cannot be any frame
10299     callback on a surface which hasn't been committed yet anyway.
10300     
10301     However, discarding pending frame callbacks can be problematic if we
10302     were to use the same `_XWAYLAND_ALLOW_COMMITS` mechanism to prevent
10303     damages to be posted before the X11 toplevel is updated completely
10304     (including the window decorations from the X11 window manager).
10305     
10306     Remove the portion of code discarding the pending frame callback,
10307     Xwayland should always wait for a pending frame callback if there's one
10308     before posting new damages.
10309     
10310     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10311     Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
10312     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10313     https://gitlab.freedesktop.org/xorg/xserver/merge_requests/333
10314 
10315 commit 4f984fc06bd57cabfa38f6191f10714878dc8969
10316 Author: Olivier Fourdan <ofourdan@redhat.com>
10317 Date:   Mon Nov 18 17:28:45 2019 +0100
10318 
10319     present/wnmd: Relax assertion on CRTC on abort_vblank()
10320     
10321     Currently, the function `present_wnmd_abort_vblank()` would fail if the
10322     given `crtc` is NULL.
10323     
10324     However, `xwl_present_get_crtc()` can return `NULL` under some
10325     circumstances, which would cause an unexpected termination of Xwayland
10326     in such a case, caused by the assertion failure being triggered.
10327     
10328     Remove the assertion, considering that the `crtc` isn't actually used in
10329     neither `present_wnmd_abort_vblank()` nor `xwl_present_abort_vblank()`.
10330     
10331     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10332     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10333     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/937
10334 
10335 commit 5c7c6d5cffa98e4749185af9211d7642b57673d8
10336 Author: Michel Dänzer <mdaenzer@redhat.com>
10337 Date:   Fri Nov 15 11:32:38 2019 +0100
10338 
10339     Revert "modesetting: Indirect the glamor API through LoaderSymbol"
10340     
10341     This reverts commit dd63f717fe8636315343f421f4f2ee299258f079.
10342     
10343     Caused a crash at least on some systems.
10344     
10345     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/934
10346 
10347 commit dd63f717fe8636315343f421f4f2ee299258f079
10348 Author: Adam Jackson <ajax@redhat.com>
10349 Date:   Tue Oct 8 13:11:09 2019 -0400
10350 
10351     modesetting: Indirect the glamor API through LoaderSymbol
10352     
10353     Prerequisite for building all of xserver with -z now.
10354     
10355     Gitlab: https://gitlab.freedesktop.org/xorg/xserver/issues/692
10356 
10357 commit 45f35a0c6666c5f35df482948e0c8e91167429ef
10358 Author: Adam Jackson <ajax@redhat.com>
10359 Date:   Tue Oct 8 12:52:28 2019 -0400
10360 
10361     modesetting: Indirect the shadow API through LoaderSymbol
10362     
10363     Prerequisite for building all of xserver with -z now.
10364     
10365     Gitlab: https://gitlab.freedesktop.org/xorg/xserver/issues/692
10366 
10367 commit 8760fab0a15805bdd12bb8f12bb1c665fde86cc2
10368 Author: Adam Jackson <ajax@redhat.com>
10369 Date:   Tue Oct 8 13:29:22 2019 -0400
10370 
10371     loader: Move LoaderSymbolFromModule() to public API
10372     
10373     Bare LoaderSymbol() isn't really a great API, this is more of a direct
10374     map to dlsym like you want.
10375     
10376     Gitlab: https://gitlab.freedesktop.org/xorg/xserver/issues/692
10377 
10378 commit e5e9a8ca91d1c087edd8788a110251ad940dbc94
10379 Author: Aaron Plattner <aplattner@nvidia.com>
10380 Date:   Wed Nov 6 10:45:43 2019 -0800
10381 
10382     xfree86: Call ScreenInit for protocol screens before GPU screens
10383     
10384     During startup, the xfree86 DDX's InitOutput() calls PreInit for
10385     protocol screens first, and then GPU screens. On teardown, dix_main()
10386     calls CloseScreen in the reverse order: GPU screens first starting with
10387     the last one and then working backwards, and then protocol screens also
10388     in reverse order.
10389     
10390     InitOutput() calls ScreenInit in the wrong order: for GPU screens first and then
10391     for protocol screens. This causes a problem for drivers that have global state
10392     that is tied to the first screen that calls ScreenInit.
10393     
10394     Fix this by simply re-ordering the for loops to call PreInit for
10395     protocol screens first and then for GPU screens second.
10396 
10397 commit 562c7888be538c4d043ec1f374a9d9afa0b305a4
10398 Author: Alex Goins <agoins@nvidia.com>
10399 Date:   Tue Sep 17 18:36:35 2019 -0500
10400 
10401     modesetting: Implement ms_covering_randr_crtc() for ms_present_get_crtc()
10402     
10403     ms_present_get_crtc() returns an RRCrtcPtr, but derives it from a xf86CrtcPtr
10404     found via ms_dri2_crtc_covering_drawable()=>ms_covering_crtc(). As a result, it
10405     depends on all associated DIX ScreenRecs having an xf86CrtcConfigPtr DDX
10406     private.
10407     
10408     Some DIX ScreenRecs don't have an xf86CrtcConfigPtr DDX private, but do have an
10409     rrScrPrivPtr DDX private. Given that we can derive all of the information we
10410     need from RandR, we can support these screens by avoiding the use of xf86Crtc.
10411     This change implements an RandR-based path for ms_present_get_crtc(), allowing
10412     drawables to successfully fall back to syncing to the primary output, even if
10413     the slave doesn't have an xf86CrtcConfigPtr DDX private.
10414     
10415     Without this change, if a slave doesn't have an xf86CrtcConfigPtr DDX private,
10416     drawables will fall back to 1 FPS if they overlap an output on that slave.
10417     
10418     Signed-off-by: Alex Goins <agoins@nvidia.com>
10419 
10420 commit 797e7a0ceb673fe2870c673e248835526a84d000
10421 Author: Alex Goins <agoins@nvidia.com>
10422 Date:   Tue Sep 17 18:03:34 2019 -0500
10423 
10424     modesetting: Fix ms_covering_crtc() segfault with non-xf86Crtc slave
10425     
10426     DIX ScreenRecs don't necessarily have an xf86CrtcConfigPtr DDX private.
10427     ms_covering_crtc() assumes that they do, which can result in a segfault.
10428     
10429     Update ms_covering_crtc() to check the XF86_CRTC_CONFIG_PTR() returned pointer
10430     before dereferencing it. This will still mean that ms_covering_crtc() can't fall
10431     back to the primary output when a drawable overlaps a slave output (going to the
10432     1 FPS default instead), but it won't segfault.
10433     
10434     Signed-off-by: Alex Goins <agoins@nvidia.com>
10435 
10436 commit 3ef9029ace4245d9f8929aa71e22bc6a6f40b7b3
10437 Author: Alex Goins <agoins@nvidia.com>
10438 Date:   Wed Aug 28 18:24:16 2019 -0500
10439 
10440     modesetting: Fix ms_covering_crtc() segfault with non-modesetting slave primary
10441     
10442     ms_covering_crtc() uses RRFirstOutput() to determine a primary output to fall
10443     back to if a drawable is overlapping a slave output.
10444     
10445     If the primary output is a slave output, RRFirstOutput() will return a slave
10446     output even if passed a master ScreenPtr. ms_covering_crtc() dereferences the
10447     output's devPrivate, which is invalid for non-modesetting outputs, and can
10448     crash.
10449     
10450     Changing RRFirstOutput() could have unintended side effects for other callers,
10451     so this change replaces the call to RRFirstOutput() with ms_first_output().
10452     ms_first_output() ignores the primary output if it doesn't match the given
10453     ScreenPtr, choosing the first connected output instead.
10454     
10455     Signed-off-by: Alex Goins <agoins@nvidia.com>
10456 
10457 commit c82f814313a813d7e1a2d7d3b1f7561810446b34
10458 Author: Alex Goins <agoins@nvidia.com>
10459 Date:   Wed Sep 4 12:25:31 2019 -0500
10460 
10461     randr: Fix RRCrtcDetachScanoutPixmap() segfault during server teardown
10462     
10463     During server teardown, mrootdraw is NULL, which can cause segfaults if
10464     master->Stop{,Flipping}PixmapTracking() don't do NULL checking. In this case we
10465     shouldn't need to do master->Stop{,Flipping}PixmapTracking() anyway, so just
10466     skip it.
10467     
10468     Signed-off-by: Alex Goins <agoins@nvidia.com>
10469 
10470 commit fe439596b99db65bbae35eff1ea0b79db167f8d6
10471 Author: Arthur Williams <taaparthur@gmail.com>
10472 Date:   Thu Oct 17 22:47:37 2019 -0700
10473 
10474     include: Increase the number of max. input devices to 256.
10475     
10476     Extending the decade old f0124ed93, to increase the number of input
10477     devices from 40 to 256. 40 translates at most 9 MD, while 256 will allow
10478     63 MD. It is an arbitrary number, but people are hitting the current
10479     limit under reasonable conditions.
10480     
10481     Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64793
10482     Signed-off-by: Arthur Williams <taaparthur@gmail.com>
10483 
10484 commit eddad048e35cbf0968d0f892009a248359a15ecd
10485 Author: Olivier Fourdan <ofourdan@redhat.com>
10486 Date:   Wed Oct 30 15:33:39 2019 +0100
10487 
10488     xwayland: Cosmetic, fix indentation
10489     
10490     For some reason, indentation for EGL backend hooks was broken.
10491     
10492     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10493     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10494 
10495 commit 4a857b161ce1202c60ac464c8eb6de358fed5508
10496 Author: Olivier Fourdan <ofourdan@redhat.com>
10497 Date:   Wed Oct 30 13:11:28 2019 +0100
10498 
10499     xwayland/shm: Use `calloc()`
10500     
10501     Currently, Xwayland pixmap SHM code uses `malloc()` to allocate the
10502     xwl_pixmap.
10503     
10504     Use `calloc()` instead, as the EGLstream backend does, as it is safer
10505     (initializing the allocated data to 0).
10506     
10507     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10508     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10509 
10510 commit 0d4667b65a81047fe5d5af537d295c64cfa08d9c
10511 Author: Olivier Fourdan <ofourdan@redhat.com>
10512 Date:   Wed Oct 30 11:50:24 2019 +0100
10513 
10514     xwayland/glamor-gbm: Use `calloc()`
10515     
10516     Currently, glamor GBM backend uses `malloc()` to allocate the
10517     xwl_pixmap.
10518     
10519     Use `calloc()` instead, as the EGLstream backend does, as it is safer
10520     (initializing the allocated data to 0).
10521     
10522     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10523     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10524 
10525 commit 2c5acdef3aab52d0a416aee3654a63328847f22e
10526 Author: Olivier Fourdan <ofourdan@redhat.com>
10527 Date:   Thu Oct 31 09:04:19 2019 +0100
10528 
10529     xwayland/eglstream: Fix order of `calloc()` args
10530     
10531     The definition by the manual is `calloc(size_t nmemb, size_t size)`.
10532     
10533     Swap the arguments of calloc() calls to match the definition.
10534     
10535     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10536     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10537 
10538 commit 0e9a0c203c2ae4eae12bdbb95428f398211c7bee
10539 Author: Dor Askayo <dor.askayo@gmail.com>
10540 Date:   Thu Nov 7 12:25:42 2019 +0100
10541 
10542     xwayland: clear pixmaps after creation in rootless mode
10543     
10544     When a pixmap is created with a backing FBO, the FBO should be cleared
10545     to avoid rendering uninitialized memory. This could happen when the
10546     pixmap is rendered without being filled in its entirety.
10547     
10548     One example is when a top-level window without a background is
10549     resized. The pixmap would be reallocated to prepare for more pixels,
10550     but uninitialized memory would be rendered in the resize offset until
10551     the client sends a frame that fills these additional pixels.
10552     
10553     Another example is when a new top-level window is created without a
10554     background. Uninitialized memory would be rendered after the pixmap is
10555     allocated and before the client sends its first frame.
10556     
10557     This issue is only apparent in OpenGL implementations that don't zero
10558     the VRAM of allocated buffers by default, such as RadeonSI.
10559     
10560     Signed-off-by: Dor Askayo <dor.askayo@gmail.com>
10561     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/636
10562     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10563 
10564 commit a506b4ecb6c54fd0388e628520eec75ea3bcb27c
10565 Author: Olivier Fourdan <ofourdan@redhat.com>
10566 Date:   Wed Nov 6 15:37:22 2019 +0100
10567 
10568     xwayland: make context current to check GL version
10569     
10570     `glGetString(GL_VERSION)` will return NULL without a current context.
10571     
10572     Commit dabc7d8b (“xwayland: Fall back to GLES2 if we don't get at least
10573     GL 2.1 in glamor”) would check the context is created, but it is made
10574     current just after, so the call to `epoxy_gl_version()` would return 0,
10575     hence defeating the version check.
10576     
10577     Make the context current prior to call `epoxy_gl_version()`.
10578     
10579     Fixes: dabc7d8b - xwayland: Fall back to GLES2 if we don't get at least
10580                       GL 2.1 in glamor
10581     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/932
10582     https://gitlab.freedesktop.org/xorg/xserver/merge_requests/324
10583     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
10584 
10585 commit dabc7d8bf2d964460286168b52899c42b3369f8d
10586 Author: Adam Jackson <ajax@redhat.com>
10587 Date:   Wed Oct 30 11:20:40 2019 -0400
10588 
10589     xwayland: Fall back to GLES2 if we don't get at least GL 2.1 in glamor
10590     
10591     Some particularly unfortunate hardware (Intel gen3, mostly) will give
10592     you GLES2 but not GL 2.1. Fall back to GLES2 for such cases so you still
10593     get accelerated GLX.
10594 
10595 commit 741bd73429e337071f49509ddcc5fb392e20b0f6
10596 Author: Hans de Goede <hdegoede@redhat.com>
10597 Date:   Mon Nov 4 20:03:17 2019 +0100
10598 
10599     glamor/xwayland: Define EGL_NO_X11
10600     
10601     Define EGL_NO_X11 everywhere were we also define MESA_EGL_NO_X11_HEADERS,
10602     EGL_NO_X11 is the MESA_EGL_NO_X11_HEADERS equivalent for the egl headers
10603     shipped with libglvnd.
10604     
10605     This fixes the xserver not building with the libglvnd-1.2.0 headers:
10606     
10607     In file included from /usr/include/EGL/eglplatform.h:128,
10608                      from /usr/include/epoxy/egl_generated.h:11,
10609                      from /usr/include/epoxy/egl.h:46,
10610                      from glamor_priv.h:43,
10611                      from glamor_composite_glyphs.c:25:
10612     /usr/include/X11/Xlib.h:222:2: error: conflicting types for 'GC'
10613       222 | *GC;
10614           |  ^~
10615     In file included from glamor.h:34,
10616                      from glamor_priv.h:32,
10617                      from glamor_composite_glyphs.c:25:
10618     ../include/gcstruct.h:282:3: note: previous declaration of 'GC' was here
10619       282 | } GC;
10620           |   ^~
10621     
10622     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
10623 
10624 commit 622eea366aaf162479eaabd93c88fa04efe98bcc
10625 Author: Jon Turney <jon.turney@dronecode.org.uk>
10626 Date:   Sat Oct 26 17:12:26 2019 +0100
10627 
10628     meson: Add sha1 library options
10629     
10630     v2: Set the define for xha1.c programatically, rather than using loads
10631     of conditionals.
10632 
10633 commit 417e4553f143820acc33998898bbd5c3d4567bcd
10634 Author: Adam Jackson <ajax@redhat.com>
10635 Date:   Wed Oct 9 12:07:00 2019 -0400
10636 
10637     misprite: Stop wrapping GetImage/GetSpans
10638     
10639     SourceValidate handles this for us consistently now.
10640     
10641     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10642 
10643 commit 77f614eb331b0240c699f7aef13a8046c9c2c70a
10644 Author: Adam Jackson <ajax@redhat.com>
10645 Date:   Wed Oct 9 12:05:56 2019 -0400
10646 
10647     composite: Stop wrapping GetImage/GetSpans
10648     
10649     SourceValidate handles this for us consistently now.
10650     
10651     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10652 
10653 commit 516e75dbb6bbf97c7af9c2226242ffd9259fec11
10654 Author: Adam Jackson <ajax@redhat.com>
10655 Date:   Wed Oct 9 11:57:18 2019 -0400
10656 
10657     dix: Call SourceValidate before GetImage
10658     
10659     This ensures that any prep work for the drawable we're about to read
10660     from is already done before we call down to GetImage. This should be no
10661     functional change as most of the callers with a non-trivial
10662     SourceValidate are already wrapping GetImage and doing the equivalent
10663     thing, but we'll be simplifying that shortly.
10664     
10665     More importantly this ensures that if any of that prep work would
10666     generate events - like automatic compositing flushing rendering to a
10667     parent pixmap which then triggers damage - then it happens entirely
10668     before we start writing the GetImage reply header.
10669     
10670     Note that we do not do the same for GetSpans, but that's okay. The only
10671     way to get to GetSpans is through miCopyArea or miCopyPlane - where the
10672     callers must already call SourceValidate - or miGetImage - which this
10673     commit now protects with SourceValidate.
10674     
10675     Fixes: xorg/xserver#902
10676     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10677 
10678 commit ff310903f34ac34c916ad74e919d1ac12aea4715
10679 Author: Adam Jackson <ajax@redhat.com>
10680 Date:   Wed Oct 9 11:27:12 2019 -0400
10681 
10682     mi: Add a default no-op miSourceValidate
10683     
10684     Slightly simplifies the callers since they don't need to check for
10685     non-NULL anymore.
10686     
10687     I do extremely hate the workarounds here to suppress misprite taking the
10688     cursor down though. Surely there's a better way.
10689     
10690     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
10691 
10692 commit 89a9927b1e5ac416441a33b44abddf8372edfe6a
10693 Author: Adam Jackson <ajax@redhat.com>
10694 Date:   Wed Oct 16 14:44:49 2019 -0400
10695 
10696     include: Remove now-empty site.h
10697 
10698 commit ff4e2c24ec599ecdbd24eb181afb50f896beb46d
10699 Author: Adam Jackson <ajax@redhat.com>
10700 Date:   Wed Oct 16 14:43:36 2019 -0400
10701 
10702     dix: Move default screensaver defaults into globals.c
10703 
10704 commit 43fc5307804edc9a09e7ad8794a02b5e18c4f9db
10705 Author: Adam Jackson <ajax@redhat.com>
10706 Date:   Wed Oct 16 14:41:20 2019 -0400
10707 
10708     include: Move some input-related default #defines to input.h
10709 
10710 commit 2d1ed64d2aedb1af5476ba011bbd36ddcf00c311
10711 Author: Adam Jackson <ajax@redhat.com>
10712 Date:   Wed Oct 16 14:33:43 2019 -0400
10713 
10714     dix: Remove -to option to set the default connection timeout
10715     
10716     One minute is admittedly arbitrary, but again, pretty sure this never
10717     gets set on the command line in practice.
10718 
10719 commit 46a275522f8692b8fc20043ec7a5e74d43448f0b
10720 Author: Adam Jackson <ajax@redhat.com>
10721 Date:   Wed Oct 16 14:30:18 2019 -0400
10722 
10723     xdmcp: Remove unconfigurable COMPILEDDISPLAYCLASS
10724 
10725 commit 66eb933ec91724a351b7368cf7171adb108299fb
10726 Author: Adam Jackson <ajax@redhat.com>
10727 Date:   Wed Oct 16 14:28:33 2019 -0400
10728 
10729     os: Remove unconfigurable DEFAULT_ACCESS_CONTROL macro
10730 
10731 commit 56ea4c769c2d65df2de86009e8e499f39a8a3d4d
10732 Author: Adam Jackson <ajax@redhat.com>
10733 Date:   Wed Oct 16 14:21:06 2019 -0400
10734 
10735     dix: Remove -fn and -fc options to set default text/cursor fonts
10736     
10737     I strongly suspect these never get used in the wild, and it's not an
10738     especially useful thing to do in any case.
10739 
10740 commit 4ebce1ed8b63decb0919146a034f0c80ac47c3cd
10741 Author: Adam Jackson <ajax@redhat.com>
10742 Date:   Wed Oct 16 13:56:34 2019 -0400
10743 
10744     os: Move log verbosity defaults into os/log.c
10745     
10746     There's not any configuration knobs for this so there's no real reason
10747     to leave them in a configgy header.
10748 
10749 commit e21371984def00b0e0b5cfc976bfd1756a2905d4
10750 Author: Adam Jackson <ajax@redhat.com>
10751 Date:   Wed Oct 16 13:52:54 2019 -0400
10752 
10753     include: Remove unused default value for COMPILEDDEFAULTFONTPATH
10754     
10755     Again, we're setting this at configure time now.
10756 
10757 commit f58fee67b1730798a57629da2f496c9fa594d143
10758 Author: Adam Jackson <ajax@redhat.com>
10759 Date:   Wed Oct 16 13:51:41 2019 -0400
10760 
10761     include: Remove unused default value for VENDOR_RELEASE
10762     
10763     We're always setting this in the appropriate blah-config.h now.
10764 
10765 commit 4b936ebcaaa80cc1dc1a51f110c7ecd77b06950e
10766 Author: Adam Jackson <ajax@redhat.com>
10767 Date:   Wed Oct 16 13:51:11 2019 -0400
10768 
10769     include: Remove unused VENDOR_STRING
10770 
10771 commit ec659f021e62338018ac09ea61c3f4baa4fdf6e2
10772 Author: Adam Jackson <ajax@redhat.com>
10773 Date:   Wed Oct 16 13:49:13 2019 -0400
10774 
10775     dix: Remove now-unused SetVendorString
10776 
10777 commit fc671085ee52c6599005e2359930bebe6195ca83
10778 Author: Adam Jackson <ajax@redhat.com>
10779 Date:   Wed Oct 16 13:42:15 2019 -0400
10780 
10781     dmx: Stop overriding the vendor string
10782 
10783 commit 0e4bd71d02d09c320e76280ae8f14df169387507
10784 Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
10785 Date:   Tue Sep 3 16:44:56 2019 +0300
10786 
10787     modesetting: Fix possible_crtcs
10788     
10789     Populate outout possible_crtcs as the union of possible_crtcs from
10790     the encoders rather than the intersection. Otherwise we're easily left
10791     with possible_crtcs==0 when all the possible encoders have
10792     non-overlapping possible_crtcs.
10793     
10794     No idea what the magic 0x7f is about, but keep it around in case
10795     it matters.
10796     
10797     Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
10798 
10799 commit 334f1107146a2e6ebf6f7743b77aec2ad5c46f75
10800 Author: Alexander Tsoy <alexander@tsoy.me>
10801 Date:   Mon Sep 23 18:23:40 2019 +0300
10802 
10803     configure: Set libdrm flags correctly if only XORG is enabled
10804     
10805     This fixes modesetting driver build failure which can be triggered with
10806     the following configure options:
10807     
10808     $ ./configure --disable-dri --disable-dri2 --disable-dri3
10809     --disable-config-udev --enable-xorg
10810     
10811     Bugzilla: https://bugs.gentoo.org/689768
10812     Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
10813     Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
10814 
10815 commit a1e3dfa50a9a9a41c93c12f19f40d97c56ddf850
10816 Author: Jon Turney <jon.turney@dronecode.org.uk>
10817 Date:   Sat Oct 26 18:43:01 2019 +0100
10818 
10819     xquartz: Remove trailing quote to fix build
10820     
10821     Fix xquartz build after typo in 3c78d637 ("global: Remove BUILD_DATE and
10822     BUILD_TIME")
10823 
10824 commit 0cf15714e1253f4ef61bb5e1f825b318a48b3cac
10825 Author: Keith Packard <keithp@keithp.com>
10826 Date:   Thu May 16 12:24:01 2019 -0700
10827 
10828     modesetting: typo in drmmode_display.c -- ',' instead of ';' at end of line
10829     
10830     This seems like a simple typo to me; thanks to C it isn't caught by
10831     the compiler.
10832     
10833     Signed-off-by: Keith Packard <keithp@keithp.com>
10834 
10835 commit 427f8bc00981703abe3153b6da575faa69fe2748
10836 Author: Robert Mader <robert.mader@posteo.de>
10837 Date:   Wed Oct 16 19:14:06 2019 +0200
10838 
10839     xserver: Fix a typo
10840     
10841     If `need_rotate` is TRUE, we should check for the right rotate.
10842 
10843 commit 55482c1caf4dbe7f4735b75366bd4acd81937fc1
10844 Author: Adam Jackson <ajax@redhat.com>
10845 Date:   Tue Oct 15 13:40:01 2019 -0400
10846 
10847     render: Fix undefined shift in xRenderColorToCard32
10848     
10849     Delightfully this is undefined even though CARD16 is an "unsigned" type,
10850     because it's an unsigned short, which C promotes to signed int because
10851     everything is stupid.
10852 
10853 commit 592525386ad81cf9c8816f42f01a5bea01034e98
10854 Author: Adam Jackson <ajax@redhat.com>
10855 Date:   Tue Oct 15 13:32:36 2019 -0400
10856 
10857     dix: Fix undefined memset in _dixInitScreenPrivates
10858     
10859     Again, memset(0, ...) is undefined.
10860 
10861 commit f44ac101c523a0439bd1a864850e3c1a4e154549
10862 Author: Adam Jackson <ajax@redhat.com>
10863 Date:   Tue Oct 15 13:21:37 2019 -0400
10864 
10865     record: Fix undefined memcpy in RecordAClientStateChange
10866     
10867     If we don't have any recording contexts just skip all this. Note this
10868     also skips a pointless trip through malloc(0)/free.
10869 
10870 commit 9155e0c7c6696ec8c657e32bf41a08f88a8f3d0d
10871 Author: Adam Jackson <ajax@redhat.com>
10872 Date:   Tue Oct 15 13:16:17 2019 -0400
10873 
10874     mi: Fix undefined memcpy in mieqGrowQueue
10875     
10876     The first time we get here, eventQueue->events is NULL.
10877 
10878 commit 6fe7c43fa52ffa9b91887ea7f8044e54b12637c9
10879 Author: Adam Jackson <ajax@redhat.com>
10880 Date:   Tue Oct 15 13:10:35 2019 -0400
10881 
10882     dix: Fix undefined shift in ht_generic_hash
10883     
10884     The hits keep coming.
10885 
10886 commit 1e5f478b7e1183d38ad07d1f5e68fdc9680f2eb8
10887 Author: Adam Jackson <ajax@redhat.com>
10888 Date:   Tue Oct 15 13:08:57 2019 -0400
10889 
10890     dix: Fix undefined shift in HashResourceID
10891     
10892     Again, we need all of the bits of an unsigned int to make this work.
10893 
10894 commit 3671a3ee88dac3cf1a301adf27dc2b43b069815b
10895 Author: Adam Jackson <ajax@redhat.com>
10896 Date:   Tue Oct 15 13:01:27 2019 -0400
10897 
10898     mi: Fix undefined shift in miSetVisualTypesAndMasks
10899     
10900     The masks we end up building will occupy all 32 bits of an unsigned int,
10901     which means we had better build the shifts out of unsigned ints, because
10902     left-shifting a signed int all the way into the sign bit is undefined.
10903 
10904 commit a41d45eedc0c217c28def47acbd8759e31706b96
10905 Author: Adam Jackson <ajax@redhat.com>
10906 Date:   Tue Oct 15 11:59:39 2019 -0400
10907 
10908     dix: Fix undefined memset in dixInitPrivates
10909     
10910     When we set these up initially, no subsystems have allocated any
10911     privates yet, so the storage address will be null, and memset(NULL, ...)
10912     is undefined.
10913 
10914 commit 535f14656a2a42f0cca13a4264e8111300e5806d
10915 Author: Michel Dänzer <mdaenzer@redhat.com>
10916 Date:   Mon Oct 14 12:48:24 2019 +0200
10917 
10918     Revert https://gitlab.freedesktop.org/xorg/xserver/merge_requests/235
10919     
10920     Caused assertion failures / crashes with Xorg.
10921     
10922     Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/916
10923 
10924 commit 5315f988d9f175e4850f4259f691a68d95ce7ac2
10925 Author: Hans de Goede <hdegoede@redhat.com>
10926 Date:   Mon Sep 2 17:32:45 2019 +0200
10927 
10928     xwayland: Set _XWAYLAND_RANDR_EMU_MONITOR_RECTS property for resolution emulation
10929     
10930     Apps using randr to change the resolution when going fullscreen, in
10931     combination with _NET_WM_STATE_FULLSCREEN to tell the window-manager (WM)
10932     to make their window fullscreen, expect the WM to give the fullscreen window
10933     the size of the emulated resolution as would happen when run under Xorg (*).
10934     
10935     We need the WM to emulate this behavior for these apps to work correctly,
10936     with Xwaylands resolution change emulation. For the WM to emulate this,
10937     it needs to know about the emulated resolution for the Windows owning
10938     client for each monitor.
10939     
10940     This commit adds a _XWAYLAND_RANDR_EMU_MONITOR_RECTS property, which
10941     contains 4 Cardinals (32 bit integers) per monitor with resolution
10942     emulation info. Window-managers can use this to get the emulated
10943     resolution for the client and size the window correctly.
10944     
10945     *) Since under Xorg the resolution will actually be changed and after that
10946     going fullscreen through NET_WM_STATE_FULLSCREEN will size the window to
10947     be equal to the new resolution.
10948     
10949     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
10950     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
10951     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
10952 
10953 commit 0c305dbff8a44f3fa3d6aefd372a967029a7a527
10954 Author: Hans de Goede <hdegoede@redhat.com>
10955 Date:   Mon Aug 26 12:26:34 2019 +0200
10956 
10957     xwayland: xwl_window_should_enable_viewport: Add extra test
10958     
10959     Games based on the allegro gaming library or on ClanLib-1.0 do not size
10960     their window to match the fullscreen resolution, instead they use a
10961     window covering the entire screen, drawing only the fullscreen resolution
10962     part of it.
10963     
10964     This commit adds a check for these games, so that we correctly apply a
10965     viewport to them making fullscreen work properly for these games under
10966     Xwayland.
10967     
10968     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
10969     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
10970     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
10971 
10972 commit 38de6260816674b5430144cc38a8a27d93d1bf19
10973 Author: Hans de Goede <hdegoede@redhat.com>
10974 Date:   Tue Jul 9 09:31:13 2019 +0200
10975 
10976     xwayland: Add vidmode mode changing emulation support
10977     
10978     Add support for fake mode changes using viewport, for apps which want to
10979     change the resolution when going fullscreen.
10980     
10981     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
10982     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
10983     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
10984 
10985 commit bcad1b813a04b9f3ff225f57a4baad09bd6315b9
10986 Author: Hans de Goede <hdegoede@redhat.com>
10987 Date:   Mon Jul 8 18:35:27 2019 +0200
10988 
10989     xwayland: Add xwlVidModeGetCurrentRRMode helper to the vidmode code
10990     
10991     crtc->mode reflects the mode set through the xrandr extension, once we
10992     add support for also changing the mode through the vidmode extension this
10993     will no longer correctly reflect the emulated resolution.
10994     
10995     Add a new xwlVidModeGetCurrentRRMode helper which determines the mode by
10996     looking at the emulated_mode instead.
10997     
10998     Likewise add a xwlVidModeGetRRMode helper and use that in
10999     xwlVidModeCheckModeForMonitor/xwlVidModeCheckModeForDriver to allow any
11000     mode listed in the randr_output's mode list.
11001     
11002     This is a preparation patch for adding emulated mode/resolution change
11003     support to Xwayland's XF86 vidmode extension emulation.
11004     
11005     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11006     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
11007     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11008 
11009 commit 43c80078126f6f33c6ab7d3cf4668733bde03366
11010 Author: Hans de Goede <hdegoede@redhat.com>
11011 Date:   Mon Jul 8 14:00:27 2019 +0200
11012 
11013     xwayland: Add xwlRRModeToDisplayMode() helper function
11014     
11015     This is a preparation patch for adding emulated mode/resolution change
11016     support to Xwayland's XF86 vidmode extension emulation, using the
11017     Wayland viewport extension.
11018     
11019     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11020     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
11021     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11022 
11023 commit d99b9ff0f237d15e7eb507484493c73b393d5dba
11024 Author: Hans de Goede <hdegoede@redhat.com>
11025 Date:   Tue Jul 2 11:55:26 2019 +0200
11026 
11027     xwayland: Add support for randr-resolution change emulation using viewport
11028     
11029     Add support for per client randr-resolution change emulation using viewport,
11030     for apps which want to change the resolution when going fullscreen.
11031     
11032     Partly based on earlier work on this by Robert Mader <robert.mader@posteo.de>
11033     
11034     Note SDL2 and SFML do not restore randr resolution when going from
11035     fullscreen -> windowed, I believe this is caused by us still reporting the
11036     desktop resolution when they query the resolution.  This is not a problem
11037     because when windowed the toplevel window size includes the window-decorations
11038     so it never matches the emulated resolution.
11039     
11040     One exception would be the window being resizable in Windowed mode and the
11041     user resizing the window so that including decorations it matches the
11042     emulated resolution *and* the window being at pos 0x0. But this is an
11043     extreme corner case. Still I will submit patches upstream to SDL2
11044     and SFML to always restore the desktop resolution under Xwayland,
11045     disabling resolution emulation all together when going windowed.
11046     
11047     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11048     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
11049     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11050 
11051 commit aca0a588eb40a5e6669094a2ab7f71ca0ba06b16
11052 Author: Hans de Goede <hdegoede@redhat.com>
11053 Date:   Thu Aug 29 23:04:36 2019 +0200
11054 
11055     xwayland: Add support for storing per client per output emulated resolution
11056     
11057     Add support for storing per output randr/vidmode emulated resolution
11058     into the per client data.
11059     
11060     Since we do not have a free/delete callback for the client this uses
11061     a simple static array. The entries are tied to a specific output by the
11062     server_output_id, with a server_output_id of 0 indicating a free slot
11063     (0 is the "None" Wayland object id).
11064     
11065     Note that even if we were to store this in a linked list, we would still
11066     need the server_output_id as this is *per client* *per output*.
11067     
11068     This is a preparation patch for adding randr/vidmode resolution
11069     change emulation.
11070     
11071     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11072     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
11073     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11074 
11075 commit 905cb8b9e27add5f49a45fe167a0005bf05218bc
11076 Author: Hans de Goede <hdegoede@redhat.com>
11077 Date:   Thu Aug 29 22:45:12 2019 +0200
11078 
11079     xwayland: Add per client private data
11080     
11081     Add per client private data, which for now is empty.
11082     
11083     This is a preparation patch for adding randr/vidmode resolution
11084     change emulation.
11085     
11086     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11087     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
11088     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11089 
11090 commit e89872f51aa834fa9d94a4ca4822f03b0341ab4f
11091 Author: Robert Mader <robert.mader@posteo.de>
11092 Date:   Mon Jan 22 17:57:38 2018 +0100
11093 
11094     xwayland: Use RandR 1.2 interface (rev 2)
11095     
11096     This adds the RandR 1.2 interface to xwayland and allows modes
11097     advertised by the compositor to be set in an undistructive manner.
11098     
11099     With this patch, applications that try to set the resolution will usually
11100     succeed and work while other apps using the same xwayland
11101     instance are not affected at all.
11102     
11103     The RandR 1.2 interface will be needed to implement fake-mode-setting and
11104     already makes applications work much cleaner and predictive when a mode
11105     was set.
11106     
11107     [hdegoede@redhat.com: Make crtc_set only succeed if the mode matches
11108      the desktop resolution]
11109     
11110     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11111     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
11112     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11113 
11114 commit 0d656d796071fb637e4969ea800855fe5d1c9728
11115 Author: Hans de Goede <hdegoede@redhat.com>
11116 Date:   Wed Jun 26 16:46:54 2019 +0200
11117 
11118     xwayland: Add fake output modes to xrandr output mode lists
11119     
11120     This is a preparation patch for adding support for apps which want to
11121     change the resolution when they go fullscreen because they are hardcoded
11122     to render at a specific resolution, e.g. 640x480.
11123     
11124     Follow up patches will fake the mode-switch these apps want by using
11125     WPviewport to scale there pixmap to cover the entire output.
11126     
11127     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11128     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
11129     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11130 
11131 commit 7c6f17790d3aedb164481264b0f05a8a14103731
11132 Author: Robert Mader <robert.mader@posteo.de>
11133 Date:   Tue Jul 2 12:03:12 2019 +0200
11134 
11135     xwayland: Use buffer_damage instead of surface damage if available
11136     
11137     When a viewport is set, damage will only work properly when using
11138     wl_surface_damage_buffer instead of wl_surface_damage.
11139     
11140     When no viewport is set, there should be no difference between
11141     surface and buffer damage.
11142     
11143     This is a preparation patch for using viewport to add support for fake
11144     mode-changes through xrandr for apps which want to change the resolution
11145     when going fullscreen.
11146     
11147     Changes by Hans de Goede <hdegoede@redhat.com>:
11148     -Split the damage changes out into their own patch
11149     -Add xwl_surface_damage helper
11150     -Also use buffer_damage / the new helper for the present and cursor code
11151     
11152     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11153     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
11154     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11155 
11156 commit 47bba4625339592d08b375bcd8e51029c0000850
11157 Author: Robert Mader <robert.mader@posteo.de>
11158 Date:   Mon Jan 22 22:02:32 2018 +0100
11159 
11160     xwayland: Add wp_viewport wayland extension support
11161     
11162     This commit adds support for the wayland wp_viewport extension, note
11163     nothing uses this yet.
11164     
11165     This is a preparation patch for adding support for fake mode-changes through
11166     xrandr for apps which want to change the resolution when going fullscreen.
11167     
11168     [hdegoede@redhat.com: Split the code for the extension out into its own patch]
11169     
11170     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11171     Acked-by: Michel Dänzer <mdaenzer@redhat.com>
11172     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11173 
11174 commit 834a467af978ac7a24ed17b8c8e58b6cddb4faf9
11175 Author: Hans de Goede <hdegoede@redhat.com>
11176 Date:   Thu Aug 29 14:18:28 2019 +0200
11177 
11178     dix: Add GetCurrentClient helper
11179     
11180     Request-handlers as registered in the requestVector array, always get
11181     passed the clientPtr for the client which sent the request.
11182     But the implementation of many request-handlers typically consists of
11183     a generic handler calling implementation specific callbacks and / or
11184     various helpers often multiple levels deep and in many cases the clientPtr
11185     does not get passed to the callbacks / helpers.
11186     
11187     This means that in some places where we would like to have access to the
11188     current-client, we cannot easily access it and fixing this would require
11189     a lot of work and often would involve ABI breakage.
11190     
11191     This commit adds a GetCurrentClient helper which can be used as a
11192     shortcut to get access to the clienPtr for the currently being processed
11193     request without needing a lot of refactoring and ABI breakage.
11194     
11195     Note using this new GetCurrentClient helper is only safe for code
11196     which only runs from the main thread, this new variable MUST NOT be used
11197     by code which runs from signal handlers or from the input-thread.
11198     
11199     The specific use-case which resulted in the creation of this patch is adding
11200     support for emulation of randr / vidmode resolution changes to Xwayland.
11201     This emulation will not actually change the monitor resolution instead it
11202     will scale any window with a size which exactly matches the requested
11203     resolution to fill the entire monitor. The main use-case for this is
11204     games which are hard-coded to render at a specific resolution and have
11205     sofar relied on randr / vidmode to change the monitor resolution when going
11206     fullscreen.
11207     
11208     To make this emulation as robust as possible (e.g. avoid accidentally scaling
11209     windows from other apps) we want to make the emulated resolution a per client
11210     state. But e.g. the RRSetCrtc function does not take a client pointer; and is
11211     a (used) part of the Xorg server ABI (note the problem is not just limited
11212     to RRSetCrtc).
11213     
11214     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11215     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
11216     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11217 
11218 commit b2a0d6065d86b8bf409ffae41180662560c42ce7
11219 Author: Emil Velikov <emil.velikov@collabora.com>
11220 Date:   Fri Jul 12 14:45:16 2019 +0100
11221 
11222     vfb: add DRI3/glamor support
11223     
11224     This commit adds DRI3/glamor support, effectively translating into
11225     hardware GPU support.
11226     
11227     Theoretically it should be possible to use DRM/GPU drivers such as
11228     virtio or vgem, although only the intel i915 driver is currently tested.
11229     
11230     Since Xvfb does no modeset, it opens the render node. Currently that is
11231     fixed to "/dev/dri/renderD128" and will be tweaked with future commits.
11232     
11233     Specific use-cases are left for the reader - testing glamor, GL driver
11234     or others.
11235     
11236     v2: Drop GLAMOR_NO_XV, use GLAMOR_FOR_XORG instead (Michel Dänzer)
11237     v3: Fix build w/o glamor
11238     v4:
11239      - Split out glamor dependency patch for meson (Pekka)
11240      - Enhance commit message (Pekka)
11241      - Use O_CLOEXEC with open() (Pekka)
11242      - Enhance error path, memory leak comments (Pekka)
11243     
11244     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11245 
11246 commit 9e574a5bd828e813ff31bdd5cbec52539534a958
11247 Author: Emil Velikov <emil.velikov@collabora.com>
11248 Date:   Mon Sep 23 16:23:02 2019 +0100
11249 
11250     meson: glamor depends on gbm and epoxy mark as such
11251     
11252     Currently glamor depends on epoxy and gbm, even the autotools build
11253     enforces that.
11254     
11255     Follow suite and do the same for the meson build.
11256     
11257     v1: Split out from larger patch (Pekka)
11258     
11259     Signed-off-by: Emil Velikov <emil.velikov@collbora.com>
11260 
11261 commit 86c8458f3d09d2c4fb68de7e6ab515739e8f8b3c
11262 Author: Emil Velikov <emil.velikov@collabora.com>
11263 Date:   Fri Jul 12 11:34:44 2019 +0100
11264 
11265     vfb: clarify code flow in vfbScreenInit
11266     
11267     v2: Enhance commit message (Pekka)
11268     
11269     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11270 
11271 commit 744c419cb4eaed4006b5f0f319b72d7ffa9fbc6d
11272 Author: Emil Velikov <emil.velikov@collabora.com>
11273 Date:   Fri Jul 19 10:53:19 2019 +0100
11274 
11275     glamor: check for non NULL pixmap at close_screen
11276     
11277     DDX such as Xorg, Xwayland & Xephyr do not destroy the pixmap before
11278     they call into CloseScreen. At the same time Xvfb (support for glamor
11279     coming with later commit) do.
11280     
11281     As such the pixmap will be NULL and we'll crash out.
11282     
11283     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11284 
11285 commit 7667180fb9dbd606e40c000aefc807371d2fb478
11286 Author: Emil Velikov <emil.velikov@collabora.com>
11287 Date:   Fri Jul 19 10:53:19 2019 +0100
11288 
11289     glamor_egl: check for non NULL pixmap at egl_close_screen
11290     
11291     DDX such as Xorg, Xwayland & Xephyr do not destroy the pixmap before
11292     they call into CloseScreen. At the same time Xvfb (support for glamor
11293     coming with later commit) do.
11294     
11295     As such the pixmap will be NULL and we'll crash out.
11296     
11297     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11298 
11299 commit 15354fb68f09eecceec5747a58cd16e6ce9236ca
11300 Author: Emil Velikov <emil.velikov@collabora.com>
11301 Date:   Fri Jul 19 15:57:52 2019 +0100
11302 
11303     glamor_egl: override the CloseScreen/DestroyPixmap earlier
11304     
11305     Currently we wrap the EGL CloseScreen/DestroyPixmap callbacks after the
11306     glamor ones. Thus upon teardown, we'll end calling things in the wrong
11307     order.
11308     
11309     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11310 
11311 commit 89597eeba6e7a3418caa375f19f8dd303219881c
11312 Author: Emil Velikov <emil.velikov@collabora.com>
11313 Date:   Thu Jul 18 14:04:33 2019 +0100
11314 
11315     glamor_egl: remove unneeded xf86 includes/GLAMOR_FOR_XORG
11316     
11317     As of last commit, all of glamor_egl ix xf86 agnostic, so adjust the
11318     includes and drop the GLAMOR_FOR_XORG instances.
11319     
11320     Note the macro is still used for glamor_xv_init() which pulls xf86.
11321     
11322     v2: Drop GLAMOR_FOR_XORG guards (Michel Dänzer)
11323     
11324     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11325 
11326 commit f3ab3d0c6123c8e7ddd3be6142f721590d153848
11327 Author: Emil Velikov <emil.velikov@collabora.com>
11328 Date:   Thu Jul 18 13:57:02 2019 +0100
11329 
11330     glamor_egl: disable modifiers via glamor_init()
11331     
11332     Currently we parse through xf86Info.debug to check if we the modifiers
11333     should be disabled. Handle that within DDX and pass GLAMOR_NO_MODIFIERS
11334     into the glamor_init() flags.
11335     
11336     This allows individual DDX control over the setting - say when modifiers
11337     are woking OK with one implementation and not the other.
11338     
11339     Most importantly, this removes the final xf86 piece from the codebase.
11340     
11341     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11342 
11343 commit 4018811838c344ee92d10e60789853e4ba512612
11344 Author: Emil Velikov <emil.velikov@collabora.com>
11345 Date:   Wed Jul 17 16:07:43 2019 +0100
11346 
11347     glamor_egl: don't use ScrnInfoRec::privates
11348     
11349     Move from the xf86 specific ScrnInfoRec::privates, to the dix private
11350     handling. Since there's no FreeScreen function in ScreenPtr, fold the
11351     former within the existing CloseScreen.
11352     
11353     Users, such as modesetting are updated, and out of tree drivers will
11354     need equivalent, yet trivial, patch.
11355     
11356     Note: we need to ensure that the screen private is unset and the screen
11357     callbacks are restored in our CloseScreen function.
11358     
11359     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11360 
11361 commit 1b5183b26d9977d46f6624126a2b2b6d77a74659
11362 Author: Emil Velikov <emil.velikov@collabora.com>
11363 Date:   Thu Jul 18 15:58:13 2019 +0100
11364 
11365     glamor_egl: move glamor_egl_cleanup() further up
11366     
11367     We'll use the function within glamor_egl_close_screen() with next patch.
11368     
11369     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11370 
11371 commit 6a557167366b8b1352709397df50649d5665b755
11372 Author: Emil Velikov <emil.velikov@collabora.com>
11373 Date:   Tue Jul 16 17:50:13 2019 +0100
11374 
11375     glamor/egl: remove unused function pointers
11376     
11377     The following two members of glamor_egl_screen_private has been unused
11378     for a little while now.
11379      CreateScreenResources
11380      CloseScreen
11381     
11382     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11383 
11384 commit 52a2a052aa3ab92b07c185c1fc2bf4ee2d727f4d
11385 Author: Emil Velikov <emil.velikov@collabora.com>
11386 Date:   Fri Jul 12 17:47:27 2019 +0100
11387 
11388     glamor_egl: use LogMessage over xf86DrvMsg
11389     
11390     Much of glamor already use LogMessage() so we might as well be
11391     consistent. This effectively paves the way of making glamor-egl xf86
11392     agnostic.
11393     
11394     Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
11395 
11396 commit 3340ddf37743fdf197dfc16a97107435ff53c6e4
11397 Author: Adam Jackson <ajax@redhat.com>
11398 Date:   Wed Oct 9 16:03:17 2019 -0400
11399 
11400     meson: Apparently 1.2 is < 1.2.0
11401     
11402     Siiiigh.
11403 
11404 commit c7486613b0dc586f93f6ba293d9b55c69995b05c
11405 Author: Adam Jackson <ajax@redhat.com>
11406 Date:   Wed Oct 9 15:17:47 2019 -0400
11407 
11408     meson: Fix another reference to "gl" 9.2.0
11409     
11410     Previous commit e6ef2b12 missed a spot.
11411 
11412 commit e6ef2b12404dfec7f23592a3524d2a63d9d25802
11413 Author: Marvin Schmidt <marv@exherbo.org>
11414 Date:   Tue Sep 24 09:58:43 2019 +0200
11415 
11416     build: glx: Lower gl version to work with libglvnd
11417     
11418     When using mesa with libglvnd support, mesa will no longer install the
11419     gl, glx, egl pkg-config files but instead let libglvnd provide them.
11420     libglvnd maintainers decided to change the versioning as it was
11421     mesa-specific previously. Now the libraries have versions of the API
11422     they expose[1].
11423     This causes problems when building the X server:
11424     
11425       checking for glproto >= 1.4.17 gl >= 9.2.0... no
11426       configure: error: Package requirements (glproto >= 1.4.17 gl >= 9.2.0) were not met:
11427     
11428       Requested 'gl >= 9.2.0' but version of gl is 1.2
11429     
11430     Lower the version requirement to 1.2 to allow building against libglvnd
11431     provided libraries
11432     
11433     [1] https://github.com/NVIDIA/libglvnd/commit/0dfaea2bcb7cdcc785f95e244223bd004a2d7fba
11434 
11435 commit afd80cfcd5ed7cd45d72620e74df86b016f81f3a
11436 Author: Jon Turney <jon.turney@dronecode.org.uk>
11437 Date:   Mon Sep 16 12:43:20 2019 +0100
11438 
11439     Revert "appveyor: Drop building Xorg server"
11440     
11441     This reverts commit a9537cfdd1ed9656f4e29225af8861418b4fd682.
11442     
11443     This is buildable again since !244
11444 
11445 commit e693c9657f98c334e9921ca2f8ebf710497c0c6a
11446 Author: Arthur Williams <taaparthur@gmail.com>
11447 Date:   Sun Oct 6 11:55:35 2019 -0700
11448 
11449     dix: Check for NULL spriteInfo in GetPairedDevice
11450     
11451     There is a race when reseting the XServer that causes spriteInfo to be
11452     NULL in GetPairedDevice resulting a segfault and subsequent crash. The
11453     problem was noticed when opening a connection, creating master devices,
11454     destroying master devices and closing the connection during testing.
11455     
11456     Signed-off-by: Arthur Williams <taaparthur@gmail.com>
11457 
11458 commit a505ecba1048048c168472e4b4a92c13f92b0613
11459 Author: Sven Joachim <svenjoac@gmx.de>
11460 Date:   Fri Oct 4 10:29:31 2019 +0200
11461 
11462     gitlab-ci: Add a manpage substitutions regression test
11463     
11464     This catches the broken manpages in the autoconf build which appeared
11465     after commit 2e497bf887ac ("man: s/__/@/g") and were only partly
11466     rectified by commit 0445705a8bbf ("man: Fix automake seddery").
11467     
11468     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
11469 
11470 commit de0d39f825cce7422986011ee9d5db91f15e2987
11471 Author: Sven Joachim <svenjoac@gmx.de>
11472 Date:   Wed Oct 2 18:26:07 2019 +0200
11473 
11474     modesetting: Fix broken manpage in autoconf build
11475     
11476     The autoconf build for the modesetting driver still relied on
11477     xorg-macros.m4 for string replacements and did not include the
11478     top-level manpages.am.  As a result, no substitutions took place after
11479     commit 2e497bf887aca832dc0dd30d071c5288ab5c1e15.
11480     
11481     This should be a candidate for the 1.20 branch.
11482     
11483     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
11484 
11485 commit 726e4230c6ffe3148f9877eba32287cfe8d158c1
11486 Author: Sven Joachim <svenjoac@gmx.de>
11487 Date:   Wed Oct 2 18:25:17 2019 +0200
11488 
11489     xwayland: Add more files to .gitignore
11490     
11491     Also sort the file again, missed in commit c8c276c9569b.
11492 
11493 commit b2de577f6388c6dd7a463e5cebb8b1366bb45d1f
11494 Author: Adam Jackson <ajax@redhat.com>
11495 Date:   Tue Jul 23 14:33:45 2019 -0400
11496 
11497     xfree86: Merge vbe into int10
11498     
11499     There's not really a good reason to keep these separate, the vbe code
11500     requires int10 and is not very large. This change eliminates the
11501     build-time options for vbe; if you build int10, you get vbe.
11502     
11503     Gitlab: https://gitlab.freedesktop.org/xorg/xserver/issues/692
11504     Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
11505 
11506 commit e7b5af451c101608d8cc003e8dd0ff83ded17146
11507 Author: Sven Joachim <svenjoac@gmx.de>
11508 Date:   Mon Sep 30 18:44:25 2019 +0200
11509 
11510     .dir-locals.el: Add missing final newline
11511 
11512 commit 47387916fb84f8f9c7931eb7162d1663a6023467
11513 Author: Sven Joachim <svenjoac@gmx.de>
11514 Date:   Mon Sep 30 18:43:13 2019 +0200
11515 
11516     Fix various spelling errors
11517 
11518 commit 2a9268e4a0ba7b062ded4d361be3119d887aac41
11519 Author: Adam Jackson <ajax@redhat.com>
11520 Date:   Tue Sep 3 11:20:58 2019 -0400
11521 
11522     dri2: Set fallback driver names for Intel and AMD chips
11523     
11524     i965 and radeonsi, respectively, are the drivers that have been
11525     receiving new hardware support. It's really silly to need to update the
11526     server side to know specific new devices IDs every time a new ASIC comes
11527     out.
11528     
11529     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
11530 
11531 commit cbdde938cbaf604741cd057fac743859ada342ec
11532 Author: Adam Jackson <ajax@redhat.com>
11533 Date:   Fri Sep 27 11:43:52 2019 -0400
11534 
11535     modesetting: Reduce "glamor initialization failed" message to X_INFO
11536     
11537     This might be an error or not, for example refusing to work on llvmpipe
11538     is normal and expected. glamor_egl_init() will print X_ERROR messages if
11539     appropriate, so we don't need to here.
11540     
11541     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
11542 
11543 commit 0d8cc7bb180468fee72330f40d87f6e9db7b42c0
11544 Author: Michel Dänzer <mdaenzer@redhat.com>
11545 Date:   Mon Sep 23 18:35:41 2019 +0200
11546 
11547     miext/sync: Make struct _SyncObject::initialized fully ABI compatible
11548     
11549     With a 32-bit build, putting the initialized field at the end of the
11550     struct bumped the struct size from 20 bytes to 24, changing the layout
11551     of other structs embedding struct _SyncObject. While this would be
11552     acceptable on master, it caused crashes with 1.20.
11553     
11554     Making the initialized field a char and putting it in the hole before
11555     the beingDestroyed field restores the 32-bit ABI as well.
11556     
11557     Fixes https://gitlab.freedesktop.org/xorg/xserver/issues/892
11558     
11559     Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
11560     Reviewed-by: Alex Goins <agoins@nvidia.com>
11561 
11562 commit 6036e845271800b2e268f5cba9283ce07a7fad3a
11563 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
11564 Date:   Mon Sep 23 16:28:42 2019 -0700
11565 
11566     meson: fix builds on Solaris 11.4
11567     
11568     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
11569 
11570 commit 0e8c0d2f238e5d50daaf4672bd80ad519673b5e3
11571 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
11572 Date:   Mon Sep 23 15:12:01 2019 -0700
11573 
11574     ospoll: Fix Solaris ports implementation to build on Solaris 11.4
11575     
11576     Wrong version got committed, but wasn't noticed since it only builds
11577     with meson, not autoconf.
11578     
11579     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
11580 
11581 commit cca4bc342cacdbd1ce819c08af2f4795f6a704c3
11582 Author: Andres Rodriguez <andresx7@gmail.com>
11583 Date:   Fri Sep 6 18:32:44 2019 -0400
11584 
11585     xf86: Disable unused crtc functions when a lease is revoked
11586     
11587     This fixes 'non-desktop' displays staying powered on after their lease
11588     has been revoked.
11589     
11590     Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111620
11591     Cc: Keith Packard <keithp@keithp.com>
11592     Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
11593 
11594 commit 0f19381f4906e3100cd43544f1cad82d2a933c63
11595 Author: Olivier Fourdan <ofourdan@redhat.com>
11596 Date:   Tue Jul 9 11:08:27 2019 +0200
11597 
11598     xwayland: Don't create wl_buffer backing pixmap
11599     
11600     In non-rootless mode, not all pixmaps need a wl_buffer backing.
11601     
11602     Suggested-by: Twaik Yont (@twaik) in #834
11603     Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
11604     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
11605 
11606 commit edf964434eac10ffbe27cc883e3ab95505669aee
11607 Author: Jonas Ådahl <jadahl@gmail.com>
11608 Date:   Fri Sep 13 17:11:27 2019 +0200
11609 
11610     xwayland/glamor-gbm: Handle DRM_FORMAT_MOD_INVALID gracefully
11611     
11612     The compositor may send DRM_FORMAT_MOD_INVALID instead of a list of
11613     modifiers for various reasons. Handle this gracefully by ignoring it.
11614     
11615     Without this, if a compositor would send DRM_FORMAT_MOD_INVALID, it'd
11616     result in empty windows provided by Xwayland.
11617     
11618     Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
11619     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11620     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
11621 
11622 commit 429ee86ab949d6e49c07491a88d6b8d8babc3246
11623 Author: Martin Weber <martin.weber@secunet.com>
11624 Date:   Wed Sep 18 14:29:05 2019 +0200
11625 
11626     udev: Fixed NULL pointer argument of strcmp
11627     
11628     Signed-off-by: Martin Weber <martin.weber@secunet.com>
11629 
11630 commit bcf2dd0cd20825ccf4284c67f678ad37ecd1d2b1
11631 Author: Jon Turney <jon.turney@dronecode.org.uk>
11632 Date:   Fri Feb 19 21:53:00 2016 +0000
11633 
11634     hw/xwin: Add -icon option to set the screen window icon in windowed mode
11635     
11636     Add an -icon option to set the screen window icon in windowed mode
11637     
11638     Allow cygwin paths in an icon-specification
11639     
11640     Update man pages and system.XWinrc appropriately
11641     
11642     Also, log an error if the icon specified for TRAYICON cannot be loaded
11643     
11644     Also, fix a bug in appending a '\' to IconDirectory only if it doesn't
11645     already end with one, which was fortunately benign.
11646     
11647     Note: LoadImageComma would be simpler if we just stated that XWinrc
11648     paths are Cygwin paths on Cygwin, Windows paths on MinGW, but that could
11649     break existing .XWinrc files
11650     
11651     Note: Given that we can specify paths in an icon-specifier, I'm not sure
11652     what IconDirectory wins us.
11653     
11654     v2:
11655     Fix formatting problems in man page additions
11656     
11657     v3:
11658     Fix some more s/_/@/g in man pages
11659 
11660 commit ac5d3a200a6d4bdb9ae4a9ef6f2238cf185d38e5
11661 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
11662 Date:   Tue Sep 10 17:28:36 2019 -0700
11663 
11664     meson: don't require xf86bigfontproto if not building xf86bigfont support
11665     
11666     Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
11667 
11668 commit 7ad1d0d384085fb480e00547c22a3e8a14b514ea
11669 Author: Carlos Garnacho <carlosg@gnome.org>
11670 Date:   Sat Jul 20 00:16:43 2019 +0200
11671 
11672     xwayland: Allow passing a fd for set up clients
11673     
11674     This FD also triggers the "wait for WM_S0" paths, so that the
11675     compositor may set up a "maintenance line" for Xwayland, for
11676     services that are essential to run before any client (eg. xrdb).
11677     Those services would use this FD, disguised as an extra display
11678     connection.
11679     
11680     This -initfd can be seen as a generalization of -wm, a Wayland
11681     compositor may use -initfd to launch its WM and any other clients
11682     that should start up, or it may use -wm as a dedicated connection for
11683     the WM and optionally use -initfd for the misc. startup clients.
11684     
11685     If either of -wm or -initfd is passed, Xwayland will expect a selection
11686     notification on WM_S0 before incorporating the FDs in -listen to the
11687     poll list.
11688     
11689     Also, correct a minor typo in the listenfd argument output,
11690     give → given.
11691     
11692     Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
11693 
11694 commit 78cc8b6f9613fc71f6ecc7e8848d54364a250634
11695 Author: Carlos Garnacho <carlosg@gnome.org>
11696 Date:   Mon Jan 7 15:33:35 2019 +0100
11697 
11698     xwayland: Handle the case of windows being realized before redirection
11699     
11700     If Xwayland gets to realize a window meant for composition before the
11701     compositor redirected windows (i.e. redirect mode is not RedirectDrawManual
11702     yet), the window would stay "invisible" as we wouldn't create a
11703     wl_surface/wl_shell_surface for it at any later point.
11704     
11705     This scenario may happen if the wayland compositor sets up a X11 socket
11706     upfront, but waits to raise Xwayland until there are X11 clients. In this
11707     case the first data on the socket is the client's, the compositor can hardly
11708     beat that in order to redirect subwindows before the client realizes a
11709     Window.
11710     
11711     In order to jump across this hurdle, allow the late creation of a matching
11712     (shell) surface for the WindowPtr on SetWindowPixmapProc, so it is ensured
11713     to be created after the compositor set up redirection.
11714     
11715     Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
11716     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
11717     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11718 
11719 commit c2e8ae964052944312c5023ca7ea5c41a92990e5
11720 Author: Carlos Garnacho <carlosg@gnome.org>
11721 Date:   Mon Jan 7 15:33:31 2019 +0100
11722 
11723     xwayland: Refactor surface creation into a separate function
11724     
11725     This is just called from xwl_window_realize() ATM, but will be useful in
11726     future commits.
11727     
11728     Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
11729 
11730 commit 4e50440ae20c537d6a4edf356cda67dd33d4e5a8
11731 Author: Carlos Garnacho <carlosg@gnome.org>
11732 Date:   Mon Jan 7 15:20:05 2019 +0100
11733 
11734     xwayland: Separate DamagePtr into separate window data
11735     
11736     This will be dissociated in future commits to handle the cases
11737     where windows are being realized before there is a compositor
11738     handling redirection.
11739     
11740     In that case, we still want the DamagePtr to be registered upfront
11741     on RealizeWindowProc before a corresponding xwl_window might be
11742     created. Most notably, it cannot be lazily created on
11743     SetWindowPixmapProc as damage accounting gets broken.
11744     
11745     Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
11746 
11747 commit 07463a40458ecc52d935b1a0bd820f6d9664da22
11748 Author: Simon Ser <contact@emersion.fr>
11749 Date:   Tue Sep 3 13:10:33 2019 +0300
11750 
11751     ci: bump DEBIAN_TAG
11752     
11753     The previous commit requires wayland-protocols 1.18. Bump DEBIAN_TAG to
11754     re-generate the Debian image and get the wayland-protocols update.
11755     
11756     Signed-off-by: Simon Ser <contact@emersion.fr>
11757     Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
11758 
11759 commit 01ed478c65227ae961d33bc1daf4a64da84f15a6
11760 Author: Simon Ser <contact@emersion.fr>
11761 Date:   Mon Sep 2 22:42:17 2019 +0300
11762 
11763     xwayland: add support for xdg-output-unstable-v1 version 3
11764     
11765     This adds support for xdg-output-unstable-v1 version 3, added in [1].
11766     
11767     This new version deprecates zxdg_output_v1.done and replaces it with
11768     wl_output.done. If the version is high enough, there's no need to wait for both
11769     an xdg_output.done event and a wl_output.done event -- we only care about
11770     wl_output.done.
11771     
11772     [1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/commit/962dd535372c8e4681374c23d2603cbe06cd7031
11773     
11774     Signed-off-by: Simon Ser <contact@emersion.fr>
11775     Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
11776 
11777 commit f0d78b47ac49977a6007f5fe081f00c6eb19a12e
11778 Author: Maarten Lankhorst <dev@mblankhorst.nl>
11779 Date:   Thu Apr 25 11:46:41 2019 +0200
11780 
11781     modesetting: Disable atomic support by default
11782     
11783     The atomic driver has issues with modesetting when stealing
11784     connectors from a different crtc, a black screen when doing rotation
11785     on a different crtc, and in general is just a mapping of the legacy
11786     helpers to atomic. This is already done in the kernel, so just
11787     fallback to legacy by default until this is fixed.
11788     
11789     Please backport to 1.20, as we don't want to enable it for everyone
11790     there. It breaks for existing users.
11791     
11792     The fixes to make the xserver more atomic have been pending on the
11793     mailing list for ages.
11794     
11795     Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110375
11796     Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110030
11797     References: https://gitlab.freedesktop.org/xorg/xserver/merge_requests/36/commits
11798     Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
11799 
11800 commit 7d0e660e0e2808e098ab9d4de843e9b31c64af21
11801 Author: Adam Jackson <ajax@redhat.com>
11802 Date:   Tue Aug 27 15:54:42 2019 -0400
11803 
11804     meson: Add dtrace support
11805 
11806 commit e0e051a3920e3e2731d35807e00d30ba9ef7f122
11807 Author: Adam Jackson <ajax@redhat.com>
11808 Date:   Tue Aug 27 15:50:23 2019 -0400
11809 
11810     dtrace: s/#if/#ifdef/ for XSERVER_DTRACE
11811     
11812     No functional change, matches meson style.
11813 
11814 commit 7968d10fadd37eabd811481e1d47fe01706269f3
11815 Author: Adam Jackson <ajax@redhat.com>
11816 Date:   Tue Aug 27 15:48:59 2019 -0400
11817 
11818     dtrace: Move Xserver.d from dix/ to include/
11819     
11820     dix/ is typically not in the include path, and this properly belongs in
11821     include anyway since it's needed from os/ too.
11822 
11823 commit 4fa43fc5134bedf50904ec634f9a63d0570b0827
11824 Author: Adam Jackson <ajax@redhat.com>
11825 Date:   Tue Aug 27 15:43:50 2019 -0400
11826 
11827     dtrace: Remove Xserver-dtrace.h.in hack
11828     
11829     This was a workaround for very old versions of dtrace(1) that didn't
11830     support the -h switch. We no longer support such old OSes.
11831 
11832 commit f8c85961c8fcb283e4ed6fc2b942428e4da2d093
11833 Author: Adam Jackson <ajax@redhat.com>
11834 Date:   Thu Aug 22 15:07:18 2019 -0400
11835 
11836     glx: Disable GLX_EXT_import_context if !enableIndirectGLX
11837     
11838     GLX_EXT_import_context allows multiple clients to share the same
11839     indirect context. If you can't create an indirect context, you're
11840     certainly not going to be able to share one. Hide the extension from the
11841     server string if we've disabled indirect contexts.
11842     
11843     This turns piglit's tests from fail to skip when indirect contexts are
11844     disabled. Since GLX_EXT_import_context has been supported in
11845     xfree86-derived servers since day 1 (it was included in the initial GLX
11846     code drop from SGI), this is now also a hint to the client that indirect
11847     contexts are unlikely to work at all.
11848     
11849     Reviewed-by: Michel Dänzer <michel@daenzer.net>
11850 
11851 commit 4f27d1e05f67eb8953a9bbed7e6f34b03456c64f
11852 Author: Christopher Chavez <chrischavez@gmx.us>
11853 Date:   Sat Jul 27 10:51:57 2019 -0500
11854 
11855     XQuartz: translate additional mouse buttons
11856     
11857     Old behavior was to translate the middle mouse button, as well as
11858     every other button that isn't the left or right mouse button,
11859     to act as the middle mouse button (2).
11860     
11861     New behavior is to translate only the middle mouse button to 2,
11862     and translate higher-numbered buttons to 8 and higher.
11863     This allows additional mouse buttons to behave under XQuartz
11864     more like they do by default under X11 on other platforms
11865     (e.g. Linux and BSD distributions).
11866     
11867     Signed-off-by: Christopher Chavez <chrischavez@gmx.us>
11868 
11869 commit 436fd7