summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Neph <ryanneph@google.com>2023-06-22 13:16:39 -0700
committerMarge Bot <emma+marge@anholt.net>2023-06-26 18:20:48 +0000
commit3764d450ac04cf9b1113e160ed5e85a3f211cdd9 (patch)
treed30439a3166cf7a16596b443ef7361967a7c49ba
parent6d3930185c8fcd12e2df726238072e8c718ddf30 (diff)
vrend/egl: ensure pre-signaled native fence is created before export
EGL_ANDROID_native_fence_sync expects that a context Flush() has occured before an attempt to eglDupNativeFenceFDANDROID(). vrend is missing that explicit flush for the sole pre-signaled fence. On Gallium drivers, the dri frontend forces a flush during eglCreateSyncKHR, but that is implementation-defined behavior that should not be relied upon. Fixes: 313f1cc8879c ("vrend: add support for exporting egl fences") Signed-off-by: Ryan Neph <ryanneph@google.com> Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1168>
-rw-r--r--src/vrend_winsys_egl.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vrend_winsys_egl.c b/src/vrend_winsys_egl.c
index 7c53a15..b5ca0ac 100644
--- a/src/vrend_winsys_egl.c
+++ b/src/vrend_winsys_egl.c
@@ -434,6 +434,9 @@ struct virgl_egl *virgl_egl_init(EGLNativeDisplayType display_id, bool surfacele
vrend_printf("Failed to create signaled fence");
goto fail;
}
+
+ /* flush to ensure a native fence object is created prior to exporting. */
+ glFlush();
}
return egl;