[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