[Mesa-stable] [PATCH 1/6] egl: make eglSwapInterval a no-op for !window surfaces

Eric Engestrom eric.engestrom at intel.com
Mon Sep 3 18:14:34 UTC 2018


On Monday, 2018-09-03 13:05:22 +0100, Emil Velikov wrote:
> From: Emil Velikov <emil.velikov at collabora.com>
> 
> As the spec says, the function is a no-op when the surface is not a
> window one.
> 
> That spec implies that EGL_TRUE should be returned in that case, yet
> the ARM driver seems to return EGL_FALSE + EGL_BAD_SURFACE.
> 
> The Nvidia driver returns EGL_TRUE. We follow that behaviour until a
> decision is made.
> 
> https://gitlab.khronos.org/egl/API/merge_requests/17
> 
> Cc: samiuddi <sami.uddin.mohammad at intel.com>
> Cc: Eric Engestrom <eric.engestrom at intel.com>
> Cc: Erik Faye-Lund <kusmabite at gmail.com>
> Cc: Tomasz Figa <tfiga at chromium.org>
> Cc: <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
> Since this is a high-level API decision I've moved it to eglapi.c
> This will allow us to avoid duplicating the check across each platform
> codebase ... or more crashes because we forgot to update one.

Very good point! Series is:
Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>

Could you add the references to the bugs and tests fixed from the other
patch, and add Cc: stable to this patch and the eglSwapBuffers() one
(the rest of the series is just cleanup of stuff that these two patches
makes unnecessary, so let's just not touch that on stable branches)?

Cheers :)

> ---
>  src/egl/main/eglapi.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
> index c8c6a50f6ad..0af31a3f774 100644
> --- a/src/egl/main/eglapi.c
> +++ b/src/egl/main/eglapi.c
> @@ -1222,6 +1222,9 @@ eglSwapInterval(EGLDisplay dpy, EGLint interval)
>     if (_eglGetSurfaceHandle(surf) == EGL_NO_SURFACE)
>        RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE);
>  
> +   if (surf->Type != EGL_WINDOW_BIT)
> +      RETURN_EGL_EVAL(disp, EGL_TRUE);
> +
>     interval = CLAMP(interval,
>                      surf->Config->MinSwapInterval,
>                      surf->Config->MaxSwapInterval);
> -- 
> 2.18.0
> 


More information about the mesa-stable mailing list