[Mesa-dev] [PATCH] egl: set preserved behavior for surface only if config supports it

Mark Janes mark.a.janes at intel.com
Wed Oct 26 22:01:16 UTC 2016


Tested-by: Mark Janes <mark.a.janes at intel.com>

Tapani Pälli <tapani.palli at intel.com> writes:

> Otherwise we can end up with mismatching behavior between config and
> surface when client queries surface attributes. As example, configs
> for DRI3 do not support preserved behavior but here we were setting
> preserved behavior for pixmap and pbuffer.
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98326
> Cc: "12.0 13.0" <mesa-stable at lists.freedesktop.org>
> ---
>  src/egl/main/eglsurface.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/egl/main/eglsurface.c b/src/egl/main/eglsurface.c
> index eb0bdfe..8e56919 100644
> --- a/src/egl/main/eglsurface.c
> +++ b/src/egl/main/eglsurface.c
> @@ -262,9 +262,13 @@ _eglInitSurface(_EGLSurface *surf, _EGLDisplay *dpy, EGLint type,
>  {
>     const char *func;
>     EGLint renderBuffer = EGL_BACK_BUFFER;
> -   EGLint swapBehavior = EGL_BUFFER_PRESERVED;
> +   EGLint swapBehavior = EGL_BUFFER_DESTROYED;
>     EGLint err;
>  
> +   /* Swap behavior can be preserved only if config supports this. */
> +   if (conf->SurfaceType & EGL_SWAP_BEHAVIOR_PRESERVED_BIT)
> +      swapBehavior = EGL_BUFFER_PRESERVED;
> +
>     switch (type) {
>     case EGL_WINDOW_BIT:
>        func = "eglCreateWindowSurface";
> -- 
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list