-
64f5e6ec
by Michel Dänzer
at 2019-01-09T14:26:33Z
xwayland: Plug leaks in xwl_present_sync_callback
xwl_present_window->sync_callback was leaked.
The event memory was leaked if the corresponding buffer had already been
released.
(cherry picked from commit cb0de153bf0c486da7e968ab0f258c9c0c9ed34a)
-
f89518e1
by Olivier Fourdan
at 2019-01-09T14:26:33Z
present/wnmd: Fix use after free on CRTC removal
Xwayland will add and remove CRTCs as Wayland outputs are added or
removed.
If there is a pending flip when this occurs, the
`xwl_present_sync_callback()` will be triggered after the Xwayland
output's RRCtrcPtr has been destroyed, hence causing a crash in Xwayland
while trying to use freed memory:
#1 abort ()
#2 OsAbort () at utils.c:1350
#3 AbortServer () at log.c:877
#4 FatalError () at log.c:1015
#5 OsSigHandler () at osinit.c:156
#6 <signal handler called>
#7 dixGetPrivate () at ../include/privates.h:122
#8 dixLookupPrivate () at ../include/privates.h:166
#9 present_screen_priv () at present_priv.h:198
#10 present_wnmd_flip () at present_wnmd.c:358
#11 present_wnmd_execute () at present_wnmd.c:466
#12 present_wnmd_re_execute () at present_wnmd.c:80
#13 xwl_present_sync_callback () at xwayland-present.c:287
#14 ffi_call_unix64 () from /lib64/libffi.so.6
#15 ffi_call () from /lib64/libffi.so.6
#16 wl_closure_invoke () at src/connection.c:1006
#17 dispatch_event () at src/wayland-client.c:1427
#18 dispatch_queue () at src/wayland-client.c:1573
#19 wl_display_dispatch_queue_pending () at src/wayland-client.c:1815
#20 wl_display_dispatch_pending () at src/wayland-client.c:1878
#21 xwl_read_events () at xwayland.c:814
#22 ospoll_wait () at ospoll.c:651
#23 WaitForSomething () at WaitFor.c:208
#24 Dispatch () at ../include/list.h:220
#25 dix_main () at main.c:276
To avoid the issue, get the `ScreenPtr` from the window instead of the
CRTC that might have been just freed, `xwl_present_flip()` has no use
for the CRTC anyway.
Bugzilla: https://bugs.freedesktop.org/108249
Suggested-by: Michel Daenzer <michel.daenzer@amd.com>
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Michel Daenzer <michel.daenzer@amd.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit b768b7d6cec41b8b320c468ec41aab5a8b49b27b)
-
cf8e064e
by Olivier Fourdan
at 2019-01-09T14:26:33Z
xwayland: do not crash if `gbm_bo_create()` fails
The function `xwl_glamor_gbm_create_pixmap()` first creates a buffer
objects and then creates the xwl_pixmap from it.
However, `xwl_glamor_gbm_create_pixmap_for_bo()` is not called if the
buffer object creation fails, and `xwl_glamor_gbm_create_pixmap()`
simply returns `glamor_create_pixmap()`.
The problem with this is that if `xwl_glamor_gbm_create_pixmap_for_bo()`
is not called then neither is `xwl_pixmap_set_private()` and further
calls to `xwl_pixmap_get()` will return NULL and cause a NULL pointer
dereference if the return value is not checked:
#0 xwl_glamor_gbm_get_wl_buffer_for_pixmap ()
at hw/xwayland/xwayland-glamor-gbm.c:248
#1 xwl_window_post_damage () at hw/xwayland/xwayland.c:697
#2 xwl_display_post_damage () at hw/xwayland/xwayland.c:759
#3 block_handler () at hw/xwayland/xwayland.c:890
#4 BlockHandler () at dix/dixutils.c:388
#5 WaitForSomething () at os/WaitFor.c:201
#6 Dispatch () at dix/dispatch.c:421
#7 dix_main () at dix/main.c:276
#8 __libc_start_main () at ../csu/libc-start.c:308
#9 _start ()
(gdb) print xwl_pixmap
$1 = (struct xwl_pixmap *) 0x0
Make sure we check for `xwl_pixmap_get()` returned value where relevant
and fail gracefully if this is the case.
See also: https://gitlab.gnome.org/GNOME/mutter/issues/340
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Marco Trevisan <mail@3v1n0.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 036794bebce72a3fa2f95996d2e537ff568e0ff1)
-
47aed554
by Michel Dänzer
at 2019-01-09T14:26:33Z
xwayland: Use xwl_present_reset_timer in xwl_present_timer_callback
Apart from simplifying the code, this should also prevent a condition
(which might only be possible with the following fix) reported in
https://gitlab.freedesktop.org/wayland/weston/issues/115#note_52467:
1. xwl_present_timer_callback indirectly calls xwl_present_reset_timer
-> xwl_present_free_timer
2. xwl_present_timer_callback then returns a non-0 value, so DoTimer
calls TimerSet with the old xwl_present_window->frame_timer pointer
which was freed in step 1 => use after free
Calling xwl_present_reset_timer explicitly passes NULL to TimerSet if
step 1 freed xwl_present_window->frame_timer, and it will allocate a new
one.
(cherry picked from commit 5e8b9a3a563047e3998d45e761f7a50e4b0f6cb3)
-
e646e305
by Michel Dänzer
at 2019-01-09T14:26:33Z
xwayland: Rename xwl_present_events_notify to xwl_present_msc_bump
And consolidate more code from xwl_present_timer_callback and
xwl_present_frame_callback in it.
(cherry picked from commit 2bfc46d4147dc0bec4cdbb80431a0f4cc1d3b030)
-
f393801d
by Michel Dänzer
at 2019-01-09T14:26:33Z
xwayland: Complete "synchronous" Present flips from xwl_present_msc_bump
Completing them from xwl_present_sync_callback had at least two issues:
* It was before the MSC was incremented in xwl_present_frame_callback,
so the MSC value in the completion event could be lower than the
target specified by the client. This could cause hangs with the Mesa
Vulkan drivers.
* It allowed clients to run at a frame-rate higher than the Wayland
compositor's frame-rate, wasting energy on generating frames which
were never displayed. This isn't expected to happen unless the client
specified PresentOptionAsync (in which case flips are still completed
from xwl_present_sync_callback, allowing higher frame-rates).
v2:
* Make xwl_present_has_events return true when there's a pending
"synchronous" flip, so those complete after at most ~1 second even if
the Wayland server doesn't send a frame event.
Bugzilla: https://bugs.freedesktop.org/106713
(cherry picked from commit ace551d8a2603e37b18237a52f62d627c75d9e2a)
-
98f41563
by Michel Dänzer
at 2019-01-09T14:26:33Z
xwayland: Replace xwl_window::present_window with ::present_flipped
There's no need to keep track of the window which last performed a
Present flip. This fixes crashes due to the assertion in
xwl_present_flips_stop failing. Fixes issue #10.
The damage generated by a flip only needs to be ignored once, then
xwl_window::present_flipped can be cleared. This may fix freezing in
the (hypothetical) scenario where Present flips are performed on a
window, followed by other drawing requests using the window as the
destination, but nothing triggering xwl_present_flips_stop. The damage
from the latter drawing requests would continue being ignored.
(cherry picked from commit 6b016d58d23d16eaae9908a92ed90547d1926317)
-
46135957
by Michel Dänzer
at 2019-01-09T14:26:33Z
xwayland: Add xwl_present_unrealize_window
When a window is unrealized, a pending frame callback may never be
called, which could result in repeatedly freezing until the frame timer
fires after a second.
Fixes these symptoms when switching from fullscreen to windowed mode in
sauerbraten.
(cherry picked from commit 8c9538573cb9a342897eb3fb4b0c1e4ed917bd0e)
-
7c28b0e3
by Michel Dänzer
at 2019-01-09T14:26:33Z
xwayland: Don't need xwl_window anymore in xwl_present_queue_vblank
Fixes issue #12. Presumably the problem was that Present operations on
unmapped windows were executed immediately instead of only when reaching
the target MSC.
(cherry picked from commit f541615342ce6bfb0e6d4e68deb3a924a87e8ba9)
-
210cd529
by Michel Dänzer
at 2019-01-09T14:26:33Z
xwayland: Don't take buffer release queue into account for frame timer
The buffer release queue has two kinds of entries:
* Pending async flips.
* Completed flips waiting for their buffer to be released by the Wayland
compositor.
xwl_present_timer_callback neither completes async flips nor releases
buffers, so the timer isn't needed for the buffer release queue.
(cherry picked from commit e6cd1c9bdefe83e7d99b703a68d26eebb451f889)
-
a352f979
by Olivier Fourdan
at 2019-01-09T14:26:33Z
xwayland: handle case without any crtc
Xwayland creates and destroys the CRTC along with the Wayland outputs,
so there is possibly a case where the number of CRTC drops to 0.
However, `xwl_present_get_crtc()` always return `crtcs[0]` which is
invalid when `numCrtcs` is 0.
That leads to crash if a client queries the Present capabilities when
there is no CRTC, the backtrace looks like:
#0 raise() from libc.so
#1 abort() from libc.so
#2 OsAbort() at utils.c:1350
#3 AbortServer() at log.c:879
#4 FatalError() at log.c:1017
#5 OsSigHandler() at osinit.c:156
#6 OsSigHandler() at osinit.c:110
#7 <signal handler called>
#8 main_arena() from libc.so
#9 proc_present_query_capabilities() at present_request.c:236
#10 Dispatch() at dispatch.c:478
#11 dix_main() at main.c:276
To avoid returning an invalid pointer (`crtcs[0]`) in that case, simply
check for `numCrtcs` being 0 and return `NULL` in that case.
Thanks to Michel Dänzer <michel.daenzer@amd.com> for pointing this as a
possible cause of the crash.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Bugzilla: https://bugzilla.redhat.com/1609181
(cherry picked from commit e8295c50209f2963fa2823e8de7e8363a38cd2d1)
-
40b22a05
by Alan Coopersmith
at 2019-02-20T19:22:02Z
Update README for gitlab migration
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 5d097c2a20fce44cdb9d5c302d46bc7fa16edfec)
-
652918e7
by Alan Coopersmith
at 2019-02-20T19:22:43Z
Update configure.ac bug URL for gitlab migration
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 17a22ad948009badbc79bbcd9a067004c98f5744)
-
4e12cba6
by Lyude Paul
at 2019-02-20T19:23:03Z
modesetting: Actually disable CRTCs in legacy mode
Believe it or not, somehow we've never done this in legacy mode! We
currently simply change the DPMS property on the CRTC's output's
respective DRM connector, but this means that we're just setting the
CRTC as inactive-not disabled. From the perspective of the kernel, this
means that any shared resources used by the CRTC are still in use.
This can cause problems for drivers that are not yet fully atomic,
despite using the atomic helpers internally. For instance: if CRTC-1 and
CRTC-2 are still enabled and use shared resources within the kernel (an
MST topology, for example), and then userspace tries to go enable CRTC-3
on the same topology this might suddenly fail if CRTC-3 needs the shared
resources CRTC-1 and CRTC-2 are using. While I don't know of any
situations in the mainline kernel that actually trigger this, future
plans for reworking the atomic check of MST drivers are absolutely
going to make this into a real issue (they already are in my WIP
branches for the kernel).
So: actually do the right thing here and disable CRTCs when they're not
going to be used anymore, even in legacy mode.
Signed-off-by: Lyude Paul <lyude@redhat.com>
(cherry picked from commit 7a44e8d4007b9c3ca55a5cc3f5e98601565311c7)
-
f5a77233
by Lionel Landwerlin
at 2019-02-20T19:23:13Z
present: fix compile warning with debug traces
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit a425eee6dce3b0cfd18b591907e8302a91b648c6)
-
10609630
by Adam Jackson
at 2019-02-20T19:23:19Z
automake: Distribute meson's configure header templates
Fixes: xorg/xserver#17
(cherry picked from commit 82ed89c0f8b18d8214430580dc80c8d3e37bef33)
-
c44eee24
by Ilia Mirkin
at 2019-02-20T19:23:33Z
modesetting: fix conn_id termination and potential overrun by 1 byte
Noticed when porting this logic to xf86-video-nouveau, and valgrind
complained about conditional jump based on uninitialized data.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
(cherry picked from commit 48b1af2718ab81c66f565438553415c05f1faa5c)
-
356cf07b
by Peter Hutterer
at 2019-02-20T19:23:50Z
test: fix failing tests
Broken since 69d8ea4a49793a94f821d1a328856901a1c02a5a because our fake screen
didn't have a root window and writing the XKB rules prop would happily
segfault. Fix this by setting up the required bits.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Michel Dänzer michel.daenzer@amd.com
(cherry picked from commit fde27b9b4814b18aca6ec587bd3cfe9ab04b0c72)
-
7b0f6102
by Michel Dänzer
at 2019-02-20T19:24:28Z
glamor: Check that storage format is compatible with RENDER format
Fixes x2r10g10b10 related rendercheck failures.
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 7e6faa5b3c05e0b7149ee840403885b0b40b5827)
-
c091ea5e
by Alan Coopersmith
at 2019-02-20T19:24:42Z
os: Report errors opening authorization file (#469)
Fixes: xorg/xserver#469
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 7fb6338c68e158053295cb448faa5c559aa9990c)
-
ff1d1692
by Maya Rashish
at 2019-02-20T19:25:28Z
Fix typo in error message
(cherry picked from commit bf2a7bb4ffbd199882fe4bd183561469833a9e6b)
-
712d0e86
by Maya Rashish
at 2019-02-20T19:25:31Z
xfree86: Try nouveau on NetBSD as well.
(cherry picked from commit e3fb178617a579c98877a3baae14c4dfe4d55db8)
-
59e0b5f0
by Michel Dänzer
at 2019-02-20T19:25:49Z
xfree86/modes: Don't clobber gamma LUT of compatibility output's CRTC
If the driver calls xf86HandleColormaps, CMapChangeGamma updates the HW
gamma LUT of all CRTCs via xf86RandR12LoadPalette. However,
xf86RandR12ChangeGamma was then clobbering the gamma LUT of the RandR
1.2 compatibility output's CRTC with the gamma curves computed from the
screen's global gamma values.
Fix this by bailing if xf86RandR12LoadPalette is installed.
Fixes: 02ff0a5d7e32 "xf86RandR12: Fix XF86VidModeSetGamma triggering a
BadImplementation error"
(cherry picked from commit 30044b2253c2dd51e1aedb2f897159c657ca8f0d)
-
2215e8c7
by Adam Jackson
at 2019-02-20T19:25:58Z
dri3: Fix XACE access mode for open and get_supported_modifiers
Neither opening a screen nor querying its modifiers confers the right to
attach the buffer for any particular pixmap. GetAttr seems more correct.
Fixes: xorg/xserver#550
(cherry picked from commit 086c2e3de55bbf0cbc1d97f7dc2db70a7f5e69e3)
-
544d0e96
by Adam Jackson
at 2019-02-20T19:26:02Z
mi: When {en,dis}abling extensions, match names case-insensitively
Both because extension names are inconsistently capitalized on the wire,
and because the table we're walking spells it COMPOSITE not Composite.
The latter is certainly also a bug, but there's no reason for us to be
that strict.
Signed-off-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit bf991a5f989c5e6e726a3731f468b7b7d65d9f4a)
-
a51d7a73
by Adam Jackson
at 2019-02-20T19:26:07Z
vnd: Fix a silly memory leak
'disp' was already allocated by LookupVendorPrivDispatch above,
clobbering it will do no good.
Signed-off-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit 709c6562975c3bea10dd0571527a4aac79a6bf6f)
-
013c28a1
by A. Wilcox
at 2019-02-20T19:26:12Z
DRI2: Add another Coffeelake PCI ID
A user of Adélie Linux reported that modesetting wasn't working properly on
their Intel i7-9700K-integrated UHD 630 GPU. Xorg.0.log showed:
[ 131.902] (EE) modeset(0): [DRI2] No driver mapping found for PCI device 0x8086 / 0x3e98
[ 131.902] (EE) modeset(0): Failed to initialize the DRI2 extension.
Indeed, that PCI ID is missing from i965_pci_ids. Adding it fixed the issue
and allowed the system to work with i965_dri under modesetting.
(cherry picked from commit d3a26bbf618507e1ca05b2bc99a880075b77db77)
-
ae9dda1e
by Peter Harris
at 2019-02-20T19:26:51Z
os: Fix GetTimeInMicros resolution
GetTimeInMillis is called first, which sets clockid to
CLOCK_MONOTONIC_COARSE, which is typically much lower resolution than
the callers of GetTimeInMicros want.
Prior to a779fda224bee0c4d27636503367e55ae93b33c2, GetTimeInMillis and
GetTimeInMicros did not share a clockid.
Restore the clockid split to fix the granularity of GetTimeInMicros.
Signed-off-by: Peter Harris <pharris@opentext.com>
(cherry picked from commit 937a5b78a2f6ea771132ff0f9ece708a23c1bdad)
-
524104e1
by Peter Hutterer
at 2019-02-20T19:27:16Z
Xi: lock the input thread for any pointer barrier list manipulation
The input thread checks the barriers for pointer positioning, swapping the
list out from underneath is considered impolite.
Reported-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
(cherry picked from commit 678d64aa2e929368b6d6f2b83bbf5540c4fa292d)
-
7753fd99
by Adam Jackson
at 2019-02-22T10:50:05Z
gitlab: Skip the docker-in-docker step
No idea which cult's cargo I was looking at there. Cuts about a minute
off the build time.
Signed-off-by: Adam Jackson <ajax@redhat.com>
(Cherry picked from commit a41ccaa0857146e986f11360d4f2aeb3913af9a6)
-
b6ef90d8
by Michel Daenzer
at 2019-02-22T10:51:35Z
travis: Use a single meson invocation
The prefix setting didn't take for some reason.
(Cherry picked from commit c1bb392b1df4023e9dec489facfa221a53499ddc)
-
4925f38d
by Michel Daenzer
at 2019-02-22T10:51:57Z
Make artifacts of piglit results if job fails
Can be useful for figuring out what caused the failure.
(Cherry picked from commit a7472da94136ef977b8d6af956a15767736236ea)
-
e8b4e94d
by Michel Dänzer
at 2019-02-22T10:52:42Z
Drop Travis Linux build in favour of GitLab CI
Fold build-travis-deps.sh into .gitlab-ci.yml.
Preparation for the next change, which would break the Travis Linux
build.
Reviewed-by: Eric Anholt <eric@anholt.net>
(Cherry picked from commit ed44f9cd6a4ccf6de7dda70432764b4da10f3f44)
-
3314af2d
by Michel Dänzer
at 2019-02-22T10:53:12Z
gitlab-ci: Docker image can be generated as part of pipeline
This removes the dependency on an externally generated docker image, and
should make it easier to update the docker image or make other changes
related to it.
This is based on Debian testing, because I'm most familiar with Debian.
But it should be easy to base it on another distro.
v2:
* Use kaniko instead of docker-in-docker for image generation, so it can
also work in unprivileged runners.
* Drop piglit.conf & tetexec.cfg overrides, just make sure the files in
the image work.
(Cherry picked from commit f56d8e2282a3d1344aa1300c78faede0071a3bfa)
-
8db5a711
by Michel Dänzer
at 2019-02-22T10:53:37Z
test: Use .../piglit instead of .../piglit-*.py
The latter use Python 2 and break with any non-ASCII characters in the
environment, the former uses Python 3 and works fine in that case.
Reviewed-by: Eric Anholt <eric@anholt.net>
(Cherry picked from commit 4aaaf69229be574d6d11084225ecd91446a15170)
-
7246730e
by Michel Dänzer
at 2019-02-22T10:53:55Z
gitlab-ci: Set LC_ALL=C.UTF-8
Although piglit could now handle non-ASCII characters in the
environment, meson was still failing without this (even though it's
using Python 3).
Reviewed-by: Eric Anholt <eric@anholt.net>
(Cherry picked from commit bc6998b728749015bfd93a85fbae48af777c9a34)
-
e10cfd8f
by Michel Dänzer
at 2019-02-22T10:54:41Z
gitlab-ci: Only run docker-image stage if relevant source files change
Otherwise there's normally no need to run it. It will also run when a
new branch is created, which ensures that the docker image always exists
(e.g. in a newly forked repository).
Inspired by https://gitlab.freedesktop.org/mesa/mesa/merge_requests/143
(Cherry picked from commit 8694395fcfd407190db74f31064960e484747377)
-
61eccbce
by Michel Dänzer
at 2019-02-22T10:54:57Z
gitlab-ci: Don't rely on $CI_PROJECT_NAME
The name of a forked repository can be changed later, in which case this
would fail to refer to the main repository.
Pointed out by Eric Engestrom in
https://gitlab.freedesktop.org/mesa/mesa/merge_requests/224 .
(Cherry picked from commit fede384962edd175b1a2ce6edd8d2ef9b0fd74f0)
-
37ad8dd9
by Michel Dänzer
at 2019-02-22T10:55:31Z
gitlab-ci: Add ccache to docker image, and leave in autotools
We're going to make use of these in build & test jobs.
(Cherry picked from commit 537f06e21ee2c4c88ee062c26555338257e043ef)
-
de6d87b6
by Michel Dänzer
at 2019-02-22T10:56:01Z
gitlab-ci: Use ccache
Meson picks it up automatically.
Based on:
* https://gitlab.freedesktop.org/mesa/mesa/merge_requests/240
* https://gould.cx/ted/blog/2017/06/10/ccache-for-Gitlab-CI/
* https://stackoverflow.com/questions/53659419/ccache-no-hits-in-gitlab-ci
v2 based on the corresponding Mesa change:
* Quote CCACHE_(BASE)DIR environment variables.
* Clear ccache stats in before_script.
* Move cache stanza to the build-and-test job, the cache isn't used in
the docker-image job.
Reviewed-by: Adam Jackson <ajax@redhat.com> # v1
(Cherry picked from commit b577df77451d34e28cfef3bda5031a43caeba90a)
-
e5984241
by Michel Dänzer
at 2019-02-22T10:56:23Z
gitlab-ci: Add autotools build & test job
(Cherry picked from commit 2f12c8017508f23195db92503435fc3ef183da4b)
-
01a03a47
by Michel Dänzer
at 2019-02-22T10:56:44Z
present/wnmd: Allow flipping if the window pixmap matches the toplevel's
Instead of testing window->redirectDraw.
With Xwayland, the toplevel window is always redirected, so this would
unnecessarily preclude flipping there in some cases, e.g. with wlroots
based Wayland compositors or with fullscreen X11 windows in weston.
Fixes issue #631.
(Cherry picked from commit a093a88531599832811a1ba5cb85101af91a545e)
-
fcac9b10
by Michel Dänzer
at 2019-02-25T18:06:58Z
glx,xquartz: Fix make distcheck
Guard BUILT_SOURCES and CLEANFILES by XWIN_GLX_WINDOWS/XQUARTZ.
(cherry picked from commit f9bbc9d5ead5cf298f0e3e0b7ac5229af830f6e7)
-
9850d20c
by Michel Dänzer
at 2019-02-25T18:07:16Z
gitlab-ci: Run make distcheck in autotools build & test job
We don't set the PIGLIT_DIR and XTS_DIR environment variables for make
distcheck for now, otherwise it complains about files left behind by
piglit.
(cherry picked from commit 432fad04e7aaad1f10d732a51665ecbe934246c6)
-
94f036d4
by Adam Jackson
at 2019-02-25T18:31:13Z
xserver 1.20.4
Signed-off-by: Adam Jackson <ajax@redhat.com>