-
2a1a96d9
by Kenneth Graunke
at 2019-11-26T21:57:17-08:00
glamor: Add a function to get the driver name via EGL_MESA_query_driver
This maps to eglGetDisplayDriverName if EGL_MESA_query_render is
supported, otherwise it returns NULL.
(cherry picked from commit 195c2ef8f9f07b9bdabc0f554a9033b7857b99c7)
-
255d8c3c
by Kenneth Graunke
at 2019-12-05T08:42:47-08:00
modesetting: Use EGL_MESA_query_driver to select DRI driver if possible
We now ask Glamor to use EGL_MESA_query_driver to obtain the DRI driver
name; if successful, we use that as the DRI driver name. Following the
existing dri2.c logic, we also use the same name for the VDPAU driver,
except for i965 (and now iris), where we switch to the "va_gl" fallback.
This allows us to bypass the PCI ID lists in xserver and centralize the
driver selection mechanism inside Mesa. The hope is that we no longer
have to update these lists for any future hardware.
(backported from commit 8d4be7f6c4f7c673d7ec1a6bfdef944907a3916e)
Acked-by: Michel Dänzer <mdaenzer@redhat.com>
-
b50175fe
by Michel Dänzer
at 2019-12-18T12:24:00-08:00
modesetting: Call glamor_finish from drmmode_crtc_set_mode
This makes sure any pending drawing to a new scanout buffer will be
visible from the start.
This makes the finish call in drmmode_copy_fb superfluous, so remove it.
Reviewed-by: Adam Jackson <ajax@redhat.com>
(Cherry picked from commit c66c548eabf06835cb0cb906598fb87c7bb30cf4)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
-
094f42cd
by Michel Dänzer
at 2019-12-18T12:24:07-08:00
xfree86/modes: Call xf86RotateRedisplay from xf86CrtcRotate
If a new rotate buffer was allocated. This makes sure the new buffer
has valid transformed contents when it starts being displayed.
Reviewed-by: Adam Jackson <ajax@redhat.com>
(Cherry picked from commit 327df450ffcf5bda5b4254db0208d355860d1010)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
-
8aad09dd
by Michel Dänzer
at 2019-12-18T12:24:10-08:00
modesetting: Clear new screen pixmap storage on RandR resize
Fixes random garbage being visible intermittently.
Reviewed-by: Adam Jackson <ajax@redhat.com>
(Cherry picked from commit 9ba13bac9dd076f166ff0d063fc144b904a40d12)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
-
87ca1bdf
by Michel Dänzer
at 2019-12-18T12:24:11-08:00
xwayland: Do flush GPU work in xwl_present_flush
The Present code sends the idle notification event to the client after
xwl_present_flush returns. If we don't flush our GPU work here, the
client may race to draw another frame to the same buffer, so we may end
up copying (parts of) that new frame instead of the one we meant to.
Fixes https://gitlab.freedesktop.org/xorg/xserver/issues/835
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
(Cherry picked from commit 2a2234ad1a0fe88400c1511fea67741e4ad09f7f)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
-
fb254064
by Peter Hutterer
at 2020-01-09T16:18:28-05:00
Xi: return AlreadyGrabbed for key grabs > 255
We can't have high keycodes because everything in XKB relies on 8 bits. XI2's
API allows for 32-bit keycodes so we have to take those but nothing in the
server is really ready for this. The effect of this right now is that any high
keycode grab is clipped to 255 and thus ends up grabbing a different key
instead.
https://bugzilla.redhat.com/show_bug.cgi?id=1697804
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit f4cdbf640b6440df4af784ca35e1b1340965cc10)
-
cfc5e504
by Aaron Plattner
at 2020-01-13T22:11:10+00:00
modesetting: Check whether RandR was initialized before calling rrGetScrPriv
Calling rrGetScrPriv when RandR isn't initialized causes an assertion
failure that aborts the server:
Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion `key->initialized' failed.
Thread 1 "Xorg" received signal SIGABRT, Aborted.
0x00007ffff78a8f25 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff78a8f25 in raise () from /usr/lib/libc.so.6
#1 0x00007ffff7892897 in abort () from /usr/lib/libc.so.6
#2 0x00007ffff7892767 in __assert_fail_base.cold () from /usr/lib/libc.so.6
#3 0x00007ffff78a1526 in __assert_fail () from /usr/lib/libc.so.6
#4 0x00007ffff7fb57c1 in dixGetPrivateAddr (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:121
#5 0x00007ffff7fb5822 in dixGetPrivate (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:136
#6 0x00007ffff7fb586a in dixLookupPrivate (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:166
#7 0x00007ffff7fb8445 in CreateScreenResources (pScreen=0x555555ab1790) at ../hw/xfree86/drivers/modesetting/driver.c:1335
#8 0x000055555576c5e4 in xf86CrtcCreateScreenResources (screen=0x555555ab1790) at ../hw/xfree86/modes/xf86Crtc.c:744
#9 0x00005555555d8bb6 in dix_main (argc=4, argv=0x7fffffffead8, envp=0x7fffffffeb00) at ../dix/main.c:214
#10 0x00005555557a4f0b in main (argc=4, argv=0x7fffffffead8, envp=0x7fffffffeb00) at ../dix/stubmain.c:34
This can happen, for example, if the server is configured with Xinerama
and there is more than one X screen:
Section "ServerLayout"
Identifier "crash"
Screen 0 "modesetting"
Screen 1 "dummy" RightOf "modesetting"
Option "Xinerama"
EndSection
Section "Device"
Identifier "modesetting"
Driver "modesetting"
EndSection
Section "Screen"
Identifier "modesetting"
Device "modesetting"
EndSection
Section "Device"
Identifier "dummy"
Driver "dummy"
EndSection
Section "Screen"
Identifier "dummy"
Device "dummy"
EndSection
The problem does not reproduce if there is only one X screen because of
this code in xf86RandR12Init:
#ifdef PANORAMIX
/* XXX disable RandR when using Xinerama */
if (!noPanoramiXExtension) {
if (xf86NumScreens == 1)
noPanoramiXExtension = TRUE;
else
return TRUE;
}
#endif
Fix the problem by checking dixPrivateKeyRegistered(rrPrivKey) before
calling rrGetScrPriv. This is similar to what the xf86-video-amdgpu
driver does:
https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/blob/fd66f5c0bea2b7c22a47bfd5eb1f22d32d166d9c/src/amdgpu_kms.c#L388
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
(cherry picked from commit 4226c6d0329df440551b7b91ae573a82c64a1ac9)
-
977f3acf
by Michel Dänzer
at 2020-01-13T22:19:21+00:00
glamor: Only use dual blending with GLSL >= 1.30
It can't be used with older GLSL. Fixes a crash when attempting to
anyway.
Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/97
Fixes: e7308b6c7756 "glamor: Add support for CA rendering in a single pass."
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(Cherry picked from commit 5bfca0038e92d61e58d4dc1a54748faef8273023)
-
bb405cdc
by Alan Coopersmith
at 2020-01-13T22:25:39+00:00
os-support/solaris: Drop ExtendedEnabled global variable
Keeping track of kernel state in user space doesn't buy us anything,
and introduces bugs, as we were keeping global state but the Solaris
kernel tracks IOPL per thread.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 7533fa9bd5a4a0f7743d553be186514d684308c8)
-
e3f26605
by Alan Coopersmith
at 2020-01-13T22:25:39+00:00
Add ddxInputThread call from os layer into ddx layer
Allows ddx's to run additional code as necessary to set up the
input thread.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 4ad21c3247d98ac6c5ad71fa36be60ed04f7c92c)
-
f778e76e
by Alan Coopersmith
at 2020-01-13T22:25:39+00:00
Add xf86OSInputThreadInit call from common layer into os-support layer
Allows os backends to run additional code as necessary to set up the
input thread.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit ea1527a8a662dcc5ac3ed49135740aa5f24f74bc)
-
cc503031
by Alan Coopersmith
at 2020-01-13T22:25:39+00:00
os-support/solaris: Set IOPL for input thread too
Since the Solaris kernel tracks IOPL per thread, and doesn't inherit
raised IOPL levels when creating a new thread, we need to turn it on
in the input thread for input drivers like vmmouse that need register
access to work correctly.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 12769c516d9356bd92f90e2f53a4853dbfdc4aed)
-
27978918
by Alan Coopersmith
at 2020-01-13T22:25:39+00:00
ospoll: Fix Solaris ports implementation to build on Solaris 11.4
Wrong version got committed, but wasn't noticed since it only builds
with meson, not autoconf.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 0e8c0d2f238e5d50daaf4672bd80ad519673b5e3)
-
489f4191
by Matt Turner
at 2020-01-13T14:50:00-08:00
xserver 1.20.7
Signed-off-by: Matt Turner <mattst88@gmail.com>
-
38bde05b
by Timo Aaltonen
at 2020-01-14T09:33:47+02:00
Merge branch 'upstream-unstable' into debian-unstable
-
35cca0b3
by Timo Aaltonen
at 2020-01-14T09:45:43+02:00
bump the version
-
b9078381
by Timo Aaltonen
at 2020-01-14T09:49:07+02:00
07_use-modesetting-driver-by-default-on-GeForce.diff: Modified to not include xf86drm.h on Hurd. (Closes: #947746)
-
143a988d
by Timo Aaltonen
at 2020-01-14T09:58:01+02:00
control: Add mesa-common-dev and libx11-xcb-dev to build-depends. (Closes: #947748)
-
66c1d9e8
by Timo Aaltonen
at 2020-01-14T09:59:32+02:00
serverminver: Bump video abi minor.
-
5bfae955
by Timo Aaltonen
at 2020-01-14T10:31:54+02:00
fix-modesetting-build.diff: Add a missing include to fix the build.
-
52b49fcf
by Timo Aaltonen
at 2020-01-14T10:50:31+02:00
release to sid