mirror of
https://github.com/X11Libre/xserver.git
synced 2026-04-14 17:18:09 +00:00
xwayland: add support for wp_linux_drm_syncobj_v1
This protocol allows for explicit synchronization of GPU operations by
Wayland clients and the compositor. Xwayland can make use of this to
ensure any rendering it initiates has completed before the target image
is accessed by the compositor, without having to rely on kernel-level
implicit synchronization.
Furthermore, for X11 clients that also support explicit synchronization
using the mechanisms exposed in the DRI3 and Present extensions, this
Wayland protocol allows us to simply forward the timeline, acquire, and
release points directly to the compositor, ideally avoiding any
premature stalls in the presentation pipeline.
Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/967>
(cherry picked from commit 87bf2cafcc)
This commit is contained in:
committed by
Alan Coopersmith
parent
588464332d
commit
378cf36115
@@ -79,7 +79,10 @@ present_execute_wait(present_vblank_ptr vblank, uint64_t crtc_msc)
|
||||
}
|
||||
|
||||
#ifdef DRI3
|
||||
if (vblank->acquire_syncobj &&
|
||||
/* Defer execution of explicitly synchronized copies.
|
||||
* Flip synchronization is managed by the driver.
|
||||
*/
|
||||
if (!vblank->flip && vblank->acquire_syncobj &&
|
||||
!vblank->acquire_syncobj->is_signaled(vblank->acquire_syncobj,
|
||||
vblank->acquire_point)) {
|
||||
vblank->efd = eventfd(0, EFD_CLOEXEC);
|
||||
|
||||
Reference in New Issue
Block a user