summaryrefslogtreecommitdiff
path: root/present
diff options
context:
space:
mode:
authorErik Kurzinger <ekurzinger@nvidia.com>2024-04-30 11:55:08 +0200
committerMarge Bot <emma+marge@anholt.net>2024-05-02 08:17:35 +0000
commit80f74b0e44ebf78424384fb32592ebabb55a48d9 (patch)
treed1bcd42b988b37f9bacf56d4aa3b696541b5f5d1 /present
parentd5192ba8eb87f5a36bc77a7b95d349ae74fd5a59 (diff)
present: signal explicit sync release point in present_vblank_scrap
If a present request using explicit sync is scrapped, instead of sending a PresentIdleNotify event we should signal the release point. Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1511>
Diffstat (limited to 'present')
-rw-r--r--present/present_vblank.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/present/present_vblank.c b/present/present_vblank.c
index dd255cc60..1c0461e84 100644
--- a/present/present_vblank.c
+++ b/present/present_vblank.c
@@ -221,7 +221,14 @@ present_vblank_scrap(present_vblank_ptr vblank)
vblank->pixmap->drawable.id, vblank->window->drawable.id,
vblank->crtc));
- present_pixmap_idle(vblank->pixmap, vblank->window, vblank->serial, vblank->idle_fence);
+#ifdef DRI3
+ if (vblank->release_syncobj)
+ vblank->release_syncobj->signal(vblank->release_syncobj,
+ vblank->release_point);
+ else
+#endif /* DRI3 */
+ present_pixmap_idle(vblank->pixmap, vblank->window, vblank->serial, vblank->idle_fence);
+
present_fence_destroy(vblank->idle_fence);
dixDestroyPixmap(vblank->pixmap, vblank->pixmap->drawable.id);