[PATCH xserver] glamor: move 'dri3_capable' extension checks after eglMakeCurrent

Emil Velikov emil.l.velikov at gmail.com
Fri Sep 25 06:04:34 PDT 2015


Otherwise we'll fail and/or crash as no context is bound.

Fixes: 64e6124f27e(glamor: move GL_OES_EGL_image check next to
EGL_EXT_image_dma_buf_import)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92105
Cc: Michel Dänzer <michel at daenzer.net>
Cc: Nick Sarnie <commendsarnex at gmail.com>
Reported-by: Nick Sarnie <commendsarnex at gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---

Sorry about this guys - had a bit of a brain-freeze.

I opted to move the whole hunk, as 1) the egl extension checks above are 
required, whist these are optional, and 2) having two GLAMOR_HAS_GBM 
blocks seems a bit of an overkill.

-Emil

 glamor/glamor_egl.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
index dcff443..2e6c7bd 100644
--- a/glamor/glamor_egl.c
+++ b/glamor/glamor_egl.c
@@ -866,15 +866,6 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
                                 KHR_surfaceless_opengl);
 #endif
 
-#ifdef GLAMOR_HAS_GBM
-    if (epoxy_has_egl_extension(glamor_egl->display,
-                                "EGL_KHR_gl_texture_2D_image") &&
-        epoxy_has_egl_extension(glamor_egl->display,
-                                "EGL_EXT_image_dma_buf_import") &&
-        epoxy_has_gl_extension("GL_OES_EGL_image"))
-        glamor_egl->dri3_capable = TRUE;
-#endif
-
     glamor_egl->context = eglCreateContext(glamor_egl->display,
                                            NULL, EGL_NO_CONTEXT,
                                            config_attribs);
@@ -889,6 +880,15 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
                    "Failed to make EGL context current\n");
         goto error;
     }
+#ifdef GLAMOR_HAS_GBM
+    if (epoxy_has_egl_extension(glamor_egl->display,
+                                "EGL_KHR_gl_texture_2D_image") &&
+        epoxy_has_egl_extension(glamor_egl->display,
+                                "EGL_EXT_image_dma_buf_import") &&
+        epoxy_has_gl_extension("GL_OES_EGL_image"))
+        glamor_egl->dri3_capable = TRUE;
+#endif
+
     glamor_egl->saved_free_screen = scrn->FreeScreen;
     scrn->FreeScreen = glamor_egl_free_screen;
 #ifdef GLAMOR_GLES2
-- 
2.5.0



More information about the xorg-devel mailing list