egl_dri2: Only clear EGL_PIXMAP_BIT if DRI config is double buffered
authorKristian Høgsberg <krh@bitplanet.net>
Wed, 31 Aug 2011 22:20:06 +0000 (18:20 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 31 Aug 2011 22:33:36 +0000 (18:33 -0400)
We don't want to set the pixmap bit in the EGL config if the DRI
config we're adding is a double buffered config.  However, don't clear
any other bits the platform might pass in in the surface_type
argument.

src/egl/drivers/dri2/egl_dri2.c

index 0099a0d6d7fab821d542e6f00759a53be1ecdb3b..6c1c17d4357651962c273a21fec90d280a6159fa 100644 (file)
@@ -259,8 +259,10 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
       return NULL;
    }
 
-   conf->base.SurfaceType |= surface_type & (!double_buffer ? EGL_PIXMAP_BIT:
-         (EGL_WINDOW_BIT | EGL_PBUFFER_BIT | EGL_SWAP_BEHAVIOR_PRESERVED_BIT));
+   if (double_buffer)
+      surface_type &= ~EGL_PIXMAP_BIT;
+
+   conf->base.SurfaceType |= surface_type;
 
    return conf;
 }