Timo Aaltonen pushed to branch debian-unstable at X Strike Force / xserver / 
xorg-server


Commits:
23a53f0d by Vasily Khoruzhick at 2021-05-03T21:44:18-07:00
glx: fixup symbol name for get_extensions function

glxProbeDriver() concatenates __DRI_DRIVER_GET_EXTENSIONS with driver name
to get symbol name for get_extension function. Unfortunately that doesn't
work for drivers that have hyphen in their name, e.g. sun4i-drm --
get_extensions() for these uses underscore instead.

As result dlsym() doesn't find get_extension() function and AIGLX
initialization fails resulting in following message in Xorg.0.log:

(EE) AIGLX error: sun4i-drm does not export required DRI extension

Replace all non-alpha-numeric characters with underscore to fix the issue..

Signed-off-by: Vasily Khoruzhick <[email protected]>
(cherry picked from commit b56e501092169a9c0a60663d832ee71898a8bc4b)

- - - - -
d41b4334 by Olivier Fourdan at 2021-06-08T08:02:37+00:00
xwayland: Add PtrFeedback to the touch device

Trying to change the acceleration/threshold on Xwayland cannot work, and
the corresponding handler xwl_pointer_control() is a no-op.

Yet, an X11 client trying to change those on the touch device may
possibly cause a crash because the touch device in Xwayland doesn't set
that.

Initialize the touch device's PtrFeedback to make sure that just cannot
happen.

Signed-off-by: Olivier Fourdan <[email protected]>
Reviewed-by: Peter Hutterer <[email protected]>
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1137
(cherry picked from commit ab76272a7d2bff997985893c89147412a7360310)

- - - - -
62725293 by Olivier Fourdan at 2021-06-08T08:02:37+00:00
dix: Guard against non-existing PtrFeedbackPtr

Trying to change the pointer control settings on a device without
PtrFeedbackPtr would be a bug and a crash in the Xserver.

Guard against that case by returning early with a BadImplementation
error, that might kill the X11 client but the Xserver would survive.

Signed-off-by: Olivier Fourdan <[email protected]>
Reviewed-by: Peter Hutterer <[email protected]>
Related: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1137
(cherry picked from commit dee2bb033e78e2f4aae7f5708c3d4fc74a9957de)

- - - - -
4e11bd39 by Łukasz Spintzyk at 2021-06-09T19:25:30+00:00
modesetting: Disable reverse prime offload mode for displays running on evdi,udl

This mode for displays running on evdi/udl as side effect of failed 
glamor_egl_init
reverse_prime_offload_mode was initialized to FALSE

After Mesa upgrade to 21.0.0 GL_RENDERER is not llvmpipe that results in 
successful glamor_egl_init
and reverse_prime_offload_mode enabled.

This commit is explicitly disabling reverse_prime_offload_mode for evdi and udl 
drivers

Signed-off-by: Łukasz Spintzyk <[email protected]>
(cherry picked from commit 7e7c147105ac704a7b33bdee0f85dc9ccdd8f747)

- - - - -
464cbee1 by Łukasz Spintzyk at 2021-06-14T12:16:45+02:00
modesetting: Initialize present extension despite glamor is disabled

Signed-off-by: Łukasz Spintzyk <[email protected]>
(cherry picked from commit d03c0de77ba36bb5221d00ac84dcdd6aae0df453)

- - - - -
31544e68 by Łukasz Spintzyk at 2021-06-14T12:16:47+02:00
present: Use crtc's screen present operation for syncing

Signed-off-by: Łukasz Spintzyk <[email protected]>
(cherry picked from commit 908deb0895f9fe345d70be933d251ea10511d30a)

- - - - -
c7a2da7b by Łukasz Spintzyk at 2021-06-14T12:16:48+02:00
present: fix msc offset calculation in screen mode

Instead of getting the current msc value from the window crtc,
which not exist take the last saved msc value saved in
the window_priv struct

Signed-off-by: Łukasz Spintzyk <[email protected]>
(cherry picked from commit d2dce22b6775c772282ac2c0e224ef9685ab34fa)

- - - - -
52eb801d by Łukasz Spintzyk at 2021-06-14T12:16:49+02:00
modesetting: Find crtc on slave outputs as fallback instead of returning 
primary crtc

Signed-off-by: Łukasz Spintzyk <[email protected]>
(cherry picked from commit b923364c5ec8251e81b4aa5fd451d9d7bb038009)

- - - - -
32196444 by Łukasz Spintzyk at 2021-06-14T12:16:50+02:00
modesetting: remove unnecessary ms_covering_xf86_crtc dup of 
ms_covering_randr_crtc

Signed-off-by: Łukasz Spintzyk <[email protected]>
(cherry picked from commit c282be503e267afdd050df837d4cf61e0e7287b7)

- - - - -
0086535e by Łukasz Spintzyk at 2021-06-14T12:16:51+02:00
modesetting: Remove few common functions from ms namespace

A lot of that code is the same as in xf86-amdgpu and xf86-nouveau drivers. By 
removing that functions from
ms namespace we can move that code to common implementation.

Signed-off-by: Łukasz Spintzyk <[email protected]>
(cherry picked from commit 5be3b80b8d084ca5721be8791910d5827d1b6014)

- - - - -
394b6cc1 by Erik Kurzinger at 2021-06-14T21:23:48+00:00
glx: don't create implicit GLXWindow if one already exists

If a GLXMakeCurrent request specifies an X window as its drawable,
__glXGetDrawable will implicitly create a GLXWindow for it. However,
the client may have already explicitly created a GLXWindow for that X
window. If that happens, two __glXDrawableRes resources will be added
to the window.

If the explicitly-created GLXWindow is later destroyed by the client,
DrawableGone will call FreeResourceByType on the X window, but this
will actually free the resource for the implicitly-created GLXWindow,
since that one would be at the head of the list.

Then if the X window is destroyed after that, the resource for the
explicitly-created GLXWindow will be freed. But that GLXWindow was
already destroyed above. This crashes the server when it tries to call
the destroyed GLXWindow's destructor. It also means the
implicitly-created GLXWindow would have been leaked since the
FreeResourceByType call mentioned above skips calling the destructor.

To fix this, if __glXGetDrawable is given an X window, it should check
if there is already a GLXWindow associated with it, and only create an
implicit one if there is not.

Signed-off-by: Erik Kurzinger <[email protected]>
Reviewed-by: Adam Jackson <[email protected]>
(cherry picked from commit b7a85e44da91d1663d5b4eabac06327c92a80f91)

- - - - -
2a83c840 by Olivier Fourdan at 2021-06-14T21:23:48+00:00
glx: Set ContextTag for all contexts

Currently, xorgGlxMakeCurrent() would set the context tag only for
indirect GLX contexts.

However, several other places expect to find a context for the tag or
they would raise a GLXBadContextTag error, such as WaitGL() or WaitX().

Set the context tag for direct contexts as well, to avoid raising an
error and possibly killing the client.

Thanks to Erik Kurzinger <[email protected]> for spotting the issue.

Signed-off-by: Olivier Fourdan <[email protected]>
Reviewed-by: Adam Jackson <[email protected]>
(cherry picked from commit c468d34c7208c9041f9c077b54a00ae9cccad6a3)

- - - - -
3ef6e7b7 by Jeremy Huddleston Sequoia at 2021-06-14T22:26:43+00:00
xquartz: Fix appFlags build failure with macOS 10.15+ SDKs

Signed-off-by: Jeremy Huddleston Sequoia <[email protected]>
(cherry picked from commit e59848548a462f1a0ac751bb8bb6afe56258cf4e)

- - - - -
7bf47771 by Jeremy Huddleston Sequoia at 2021-06-14T22:26:43+00:00
xquartz: Ensure the mouse pointer is shown when switching to a native macOS 
alert or window

Fixes: https://github.com/XQuartz/XQuartz/issues/100
Signed-off-by: Jeremy Huddleston Sequoia <[email protected]>
(cherry picked from commit 4ae36f418ed683532b0b6991e4a1e7d56740b845)

- - - - -
f1e76731 by Ville Syrjälä at 2021-06-14T22:39:39+00:00
modesetting: Update props for dynamically added outputs

Dynamically added outputs should have their properties
properly updated as well. Otherwise we're left with an output
with many of its propeties not exposed.

Signed-off-by: Ville Syrjälä <[email protected]>
Reviewed-by: Michel Dänzer <[email protected]>
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1143
(cherry picked from commit 0c5179c280a193a1dbbe29160906087f06eae6f2)

- - - - -
d16f6403 by Ville Syrjälä at 2021-06-14T22:39:39+00:00
modesetting: Fix possible_crtcs

Populate outout possible_crtcs as the union of possible_crtcs from
the encoders rather than the intersection. Otherwise we're easily left
with possible_crtcs==0 when all the possible encoders have
non-overlapping possible_crtcs.

No idea what the magic 0x7f is about, but keep it around in case
it matters.

Signed-off-by: Ville Syrjälä <[email protected]>
(cherry picked from commit 0e4bd71d02d09c320e76280ae8f14df169387507)

- - - - -
22449f63 by Jose Maria Casanova Crespo at 2021-06-14T23:39:37+00:00
glamor: Avoid using GL_QUADS on V3D

Like in 0e3f1252dacdc3194 ("glamor: Avoid using GL_QUADS on VC4")
this will avoid mesa to fallback doing conversion for QUADS primitives.

Signed-off-by: Jose Maria Casanova Crespo <[email protected]>
Reviewed-by: Emma Anholt <[email protected]>
(cherry picked from commit 9adb13e296baead53112a268ddfd291195742c71)

- - - - -
a4210fe0 by Łukasz Spintzyk at 2021-06-15T14:50:39+02:00
xfree86: Change displays array to pointers array to fix invalid pointer issues 
after table reallocation

There are rare cases when xf86SetDepthBpp is resizing displays array in 
confScreen.
As that array is shared between set of ScrnInfoRec's then realloc might 
invalidate chached DispPtr display values in
otheres ScrnInfoRec objects.

If we will change displays array as an array of pointers to DispRec then cached 
DispRec pointers in ScrnInfoRec
won't be invalid after reallocation of displays array.

Signed-off-by: Łukasz Spintzyk <[email protected]>
(cherry picked from commit f8a6be04d0c7e6a99824ff888ad6c010960c5c21)

- - - - -
1fc0ca6e by Łukasz Spintzyk at 2021-06-24T13:41:24+02:00
xfree86: Fix out of array bound access to xf86Entities

Signed-off-by: Łukasz Spintzyk <[email protected]>
(cherry picked from commit d66b7ec12986efd4f32fcc84cdaacbd04ec98ccb)

- - - - -
9a59631a by Olivier Fourdan at 2021-06-26T21:13:41+00:00
glx: Fix use after free in MakeCurrent

The fix from commit c468d34c7 - "glx: Set ContextTag for all contexts"
is actually incomplete, it correctly sets the context tag for direct
contexts as well, but would fail to mark the context's currentClient.

As a result, when the context is destroyed, it would be freed
immediately rather than being just scheduled for deletion, even though
it is still current for some client. leading to a use-after-free.

Make sure to also set the context's currentClient for direct contexts as
well, not just indirect ones.

Signed-off-by: Olivier Fourdan <[email protected]>
Fixes: c468d34c7 - "glx: Set ContextTag for all contexts"
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1186
Reviewed-by: Adam Jackson <[email protected]>
(cherry picked from commit aad61e8e03311eb8bae4f7db59e65634733eadc2)

- - - - -
e49738f0 by Zoltán Böszörményi at 2021-06-26T21:20:56+00:00
xfree86: Fix NULL pointer dereference crash

screenp->displays[count] (passed to configDisplay() in
configScreen()) is NULL if there is no Virtual setting
in the configuration.

Fixes: f8a6be04d0c7e6a99824ff888ad6c010960c5c21 ("xfree86: Change
displays array to pointers array to fix invalid pointer issues
after table reallocation")

Signed-off-by: Zoltán Böszörményi <[email protected]>
(cherry picked from commit ef89b6648e2a806237a6d2fa598e1b9c83f128b4)

- - - - -
b7adbac7 by orbea at 2021-06-26T21:29:23+00:00
hw/dmx/config: Link directly with libdmxconfig.a

When building xserver with slibtool (https://dev.midipix.org/cross/slibtool)
the build will fail.

  /usr/bin/ld: cannot find -ldmxconfig

This is because xserver creates libdmxconfig.a internally and then links with
the linker flag -ldmxconfig. However according to automake documentation the
-lfoo linker flags should only be used for external dependencies and all
internal libraries should be linked with the libtool archive file (.la) or
the static archive (.a) when the former is not available.

GNU libtool is far more permissive and happens to silently obscure this issue
while slibtool fails because it instead sees '-L./.libs -ldmxconfig'.

Signed-off-by: Matt Turner <[email protected]>
(cherry picked from commit 2531ee02450e3be3549daa09407557c3addeba02)

- - - - -
8dea5022 by Matt Turner at 2021-07-08T12:15:13-07:00
Build xz tarballs instead of bzip2

Signed-off-by: Matt Turner <[email protected]>

- - - - -
b88ad0b3 by Matt Turner at 2021-07-08T12:15:21-07:00
xserver 1.20.12

Signed-off-by: Matt Turner <[email protected]>

- - - - -
b03d7184 by Łukasz Spintzyk at 2021-07-29T11:55:38+02:00
present: fallback get_crtc to return crtc belonging to screen with present 
extension

Since crtc can belong to secondary output that may not have present
extension enabled we should fallback to first enabled crtc or fake crtc.

Fix for issue xorg/xserver#1195

(cherry picked from commit d6c02ffd9c910637f6b3b7249507998e9e45f93c)

- - - - -
f85e4edb by Łukasz Spintzyk at 2021-07-29T11:55:40+02:00
modesetting: unflip not possible when glamor is not set

This is fixing crashes of xfce when running under qemu

(cherry picked from commit 8836b9d243444031b6396d39d345f2f83b5fa6a9)

- - - - -
86a72cb1 by Matt Turner at 2021-07-29T11:23:15-07:00
xserver 1.20.13

Signed-off-by: Matt Turner <[email protected]>

- - - - -
b122e9f9 by Timo Aaltonen at 2021-08-10T12:13:30+03:00
Merge branch 'upstream-unstable' into debian-unstable

- - - - -
3426e987 by Timo Aaltonen at 2021-08-10T12:21:22+03:00
bump the version

- - - - -
0684b2b7 by Timo Aaltonen at 2021-08-10T12:27:35+03:00
release to experimental

- - - - -


30 changed files:

- configure.ac
- debian/changelog
- dix/devices.c
- glamor/glamor.c
- glx/glxcmds.c
- glx/glxdricommon.c
- hw/dmx/config/Makefile.am
- hw/dmx/dmxextension.c
- hw/dmx/dmxinit.c
- hw/xfree86/common/xf86Bus.c
- hw/xfree86/common/xf86Config.c
- hw/xfree86/common/xf86Helper.c
- hw/xfree86/common/xf86str.h
- hw/xfree86/drivers/modesetting/dri2.c
- hw/xfree86/drivers/modesetting/driver.c
- hw/xfree86/drivers/modesetting/driver.h
- hw/xfree86/drivers/modesetting/drmmode_display.c
- hw/xfree86/drivers/modesetting/pageflip.c
- hw/xfree86/drivers/modesetting/present.c
- hw/xfree86/drivers/modesetting/vblank.c
- hw/xquartz/X11Application.m
- hw/xquartz/xpr/xprCursor.c
- hw/xwayland/xwayland-input.c
- meson.build
- present/present.c
- present/present_scmd.c
- present/present_vblank.c
- randr/randr.c
- randr/randrstr.h
- randr/rrcrtc.c


The diff was not included because it is too large.


View it on GitLab: 
https://salsa.debian.org/xorg-team/xserver/xorg-server/-/compare/3e7c0ec8d586b7773f18bd2d8811a1da56b5b8ee...0684b2b7f9e81fb2a075488f9d3a71300b9374c7

-- 
View it on GitLab: 
https://salsa.debian.org/xorg-team/xserver/xorg-server/-/compare/3e7c0ec8d586b7773f18bd2d8811a1da56b5b8ee...0684b2b7f9e81fb2a075488f9d3a71300b9374c7
You're receiving this email because of your account on salsa.debian.org.


Reply via email to