diff options
author | Ryan Neph <ryanneph@google.com> | 2023-06-22 13:16:39 -0700 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-06-26 18:20:48 +0000 |
commit | 3764d450ac04cf9b1113e160ed5e85a3f211cdd9 (patch) | |
tree | d30439a3166cf7a16596b443ef7361967a7c49ba | |
parent | 6d3930185c8fcd12e2df726238072e8c718ddf30 (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.c | 3 |
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; |