egl/wgl: Support eglWaitClient
authorJesse Natalie <jenatali@microsoft.com>
Mon, 20 Sep 2021 16:49:48 +0000 (09:49 -0700)
committerMarge Bot <emma+marge@anholt.net>
Wed, 10 Aug 2022 21:00:42 +0000 (21:00 +0000)
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Acked-by: Sidney Just <justsid@x-plane.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Tested-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12964>

src/egl/drivers/wgl/egl_wgl.c

index 3e65308..f9164b2 100644 (file)
@@ -822,6 +822,15 @@ wgl_swap_buffers(_EGLDisplay *disp, _EGLSurface *draw)
    return ret;
 }
 
+static EGLBoolean
+wgl_wait_client(_EGLDisplay *disp, _EGLContext *ctx)
+{
+   struct wgl_egl_context *wgl_ctx = wgl_egl_context(ctx);
+   struct pipe_fence_handle *fence = NULL;
+   wgl_ctx->ctx->st->flush(wgl_ctx->ctx->st, ST_FLUSH_END_OF_FRAME | ST_FLUSH_WAIT, &fence, NULL, NULL);
+   return EGL_TRUE;
+}
+
 struct _egl_driver _eglDriver = {
    .Initialize = wgl_initialize,
    .Terminate = wgl_terminate,
@@ -837,5 +846,6 @@ struct _egl_driver _eglDriver = {
    .GetProcAddress = _glapi_get_proc_address,
    .SwapInterval = wgl_swap_interval,
    .SwapBuffers = wgl_swap_buffers,
+   .WaitClient = wgl_wait_client,
 };