Prefer KHR_surfaceless_context EGL extension over KHR_surfaceless_opengl/gles2.
authorMichel Dänzer <michel.daenzer@amd.com>
Tue, 7 Aug 2012 16:16:58 +0000 (18:16 +0200)
committerEric Anholt <eric@anholt.net>
Wed, 18 Dec 2013 19:23:53 +0000 (11:23 -0800)
Current Mesa Git only advertises the former instead of the latter.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
glamor/glamor_egl.c

index 596470c..a9a92a7 100644 (file)
@@ -397,7 +397,7 @@ glamor_egl_close_screen(CLOSE_SCREEN_ARGS_DECL)
 
 static Bool
 glamor_egl_has_extension(struct glamor_egl_screen_private *glamor_egl,
-                        char *extension)
+                        const char *extension)
 {
        const char *egl_extensions;
        char *pext;
@@ -512,12 +512,19 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
                return FALSE;  \
        }
 
+#define GLAMOR_CHECK_EGL_EXTENSIONS(EXT1, EXT2)         \
+       if (!glamor_egl_has_extension(glamor_egl, "EGL_" #EXT1) &&  \
+           !glamor_egl_has_extension(glamor_egl, "EGL_" #EXT2)) {  \
+               ErrorF("EGL_" #EXT1 " or EGL_" #EXT2 " required.\n");  \
+               return FALSE;  \
+       }
+
        GLAMOR_CHECK_EGL_EXTENSION(MESA_drm_image);
        GLAMOR_CHECK_EGL_EXTENSION(KHR_gl_renderbuffer_image);
 #ifdef GLAMOR_GLES2
-       GLAMOR_CHECK_EGL_EXTENSION(KHR_surfaceless_gles2);
+       GLAMOR_CHECK_EGL_EXTENSIONS(KHR_surfaceless_context, KHR_surfaceless_gles2);
 #else
-       GLAMOR_CHECK_EGL_EXTENSION(KHR_surfaceless_opengl);
+       GLAMOR_CHECK_EGL_EXTENSIONS(KHR_surfaceless_context, KHR_surfaceless_opengl);
 #endif
 
        glamor_egl->egl_create_image_khr = (PFNEGLCREATEIMAGEKHRPROC)