xserver/hw
Erik Kurzinger 829b10c245 xwayland: don't scrap pending present requests
When a present request is received, Xwayland will check if there is an
existing request targeting the same window and msc and scrap the older
request if so. Alas, this does not interact well the older fence-based
or newer syncobj-based synchronization features of the Present
extension.

Since execution of a request may be delayed for an unknown length of
time while waiting for a fence to be signaled, the target msc computed
upon receiving a request may not match the actual msc at which the
request is executed. Therefore, we cannot determine in advance whether a
more recently received request will make an older request redundant.

This change removes the code to scrap pending present requests.

We must also ensure requests are executed in the correct order even if
their fences are signaled out of order. To achieve this, whenever
execution of a request needs to wait for a fence, execution of any
later-received requests will be blocked until the earlier request is
ready. The blocked requests will be added to a list tracked in the
xwl_present_window struct. Once the earlier request's fence is signaled,
any blocked requests will be re-executed.

Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/967>
(cherry picked from commit e1f16fb1ac)
2026-01-19 12:32:24 -08:00
..
kdrive drop remains of support for old Sun compilers 2026-01-19 12:32:18 -08:00
vfb Xvfb: Support up to 13 mouse buttons 2024-01-08 11:16:11 +00:00
xfree86 Present: add PresentCapabilitySyncobj and PresentPixmapSynced 2026-01-19 12:32:24 -08:00
xnest xnest: use own dev-privates key for per-screen cursor 2026-01-19 12:32:21 -08:00
xquartz Xquartz: ProcAppleDRICreatePixmap needs to use unswapped length to send reply 2026-01-19 12:32:24 -08:00
xwayland xwayland: don't scrap pending present requests 2026-01-19 12:32:24 -08:00
xwin xwin: consolidate debugging symbols 2026-01-19 12:32:22 -08:00
meson.build Drop DMX DDX 2021-09-07 09:34:31 +00:00