[Mesa-dev] [PATCH] egl/dri2: don't require a context for ClientWaitSync (v2)

Frank Binns frank.binns at imgtec.com
Mon Sep 28 00:35:22 PDT 2015


On 27/09/15 19:21, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> The spec doesn't require it. This fixes a crash on Android.
>
> v2: don't set any flags if ctx == NULL
>
> Cc: 10.6 11.0 <mesa-stable at lists.freedesktop.org>
> ---
>  src/egl/drivers/dri2/egl_dri2.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
> index 1740ee3..4072a02 100644
> --- a/src/egl/drivers/dri2/egl_dri2.c
> +++ b/src/egl/drivers/dri2/egl_dri2.c
> @@ -2424,13 +2424,13 @@ dri2_client_wait_sync(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSync *sync,
>     unsigned wait_flags = 0;
>     EGLint ret = EGL_CONDITION_SATISFIED_KHR;
>  
Nit: it would be nice to quote the spec here, e.g.:

/*
 * The EGL_KHR_fence_sync spec states:
 *
 *    "If no context is current for the bound API,
 *     the EGL_SYNC_FLUSH_COMMANDS_BIT_KHR bit is ignored.
 */

> -   if (flags & EGL_SYNC_FLUSH_COMMANDS_BIT_KHR)
> +   if (dri2_ctx && flags & EGL_SYNC_FLUSH_COMMANDS_BIT_KHR)
>        wait_flags |= __DRI2_FENCE_FLAG_FLUSH_COMMANDS;
>  
>     /* the sync object should take a reference while waiting */
>     dri2_egl_ref_sync(dri2_sync);
>  
> -   if (dri2_dpy->fence->client_wait_sync(dri2_ctx->dri_context,
> +   if (dri2_dpy->fence->client_wait_sync(dri2_ctx ? dri2_ctx->dri_context : NULL,
>                                           dri2_sync->fence, wait_flags,
>                                           timeout))
>        dri2_sync->base.SyncStatus = EGL_SIGNALED_KHR;
Either way:
Reviewed-by: Frank Binns <frank.binns at imgtec.com>


More information about the mesa-dev mailing list