This patch makes use of recently implemented
EGL_KHR_no_config_context extension in Mesa,
which superseeds EGL_MESA_configless_context.

See also (and the follow-up patch):

https://lists.freedesktop.org/archives/mesa-dev/2016-September/128510.html

v2:

 - Extend existing infrastructure for EGL_MESA_configless_context
   per suggestion from Emmanuel Gil Peyrot.

Signed-off-by: Armin Krezović <krezovic.ar...@gmail.com>
---
 libweston/gl-renderer.c    | 9 +++++----
 libweston/weston-egl-ext.h | 3 +++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
index 031576b..525d05d 100644
--- a/libweston/gl-renderer.c
+++ b/libweston/gl-renderer.c
@@ -2566,8 +2566,8 @@ gl_renderer_output_create(struct weston_output *output,
        if (egl_config != gr->egl_config &&
            !gr->has_configless_context) {
                weston_log("attempted to use a different EGL config for an "
-                          "output but EGL_MESA_configless_context is not "
-                          "supported\n");
+                          "output but EGL_KHR_no_config_context or "
+                          "EGL_MESA_configless_context is not supported\n");
                return -1;
        }
 
@@ -2726,7 +2726,8 @@ gl_renderer_setup_egl_extensions(struct weston_compositor 
*ec)
                weston_log("warning: EGL_EXT_swap_buffers_with_damage not "
                           "supported. Performance could be affected.\n");
 
-       if (weston_check_egl_extension(extensions, 
"EGL_MESA_configless_context"))
+       if (weston_check_egl_extension(extensions, "EGL_KHR_no_config_context") 
||
+           weston_check_egl_extension(extensions, 
"EGL_MESA_configless_context"))
                gr->has_configless_context = 1;
 
        if (weston_check_egl_extension(extensions, 
"EGL_KHR_surfaceless_context"))
@@ -3102,7 +3103,7 @@ gl_renderer_setup(struct weston_compositor *ec, 
EGLSurface egl_surface)
        context_config = gr->egl_config;
 
        if (gr->has_configless_context)
-               context_config = EGL_NO_CONFIG_MESA;
+               context_config = EGL_NO_CONFIG_KHR;
 
        gr->egl_context = eglCreateContext(gr->egl_display, context_config,
                                           EGL_NO_CONTEXT, context_attribs);
diff --git a/libweston/weston-egl-ext.h b/libweston/weston-egl-ext.h
index 6e36996..50964a8 100644
--- a/libweston/weston-egl-ext.h
+++ b/libweston/weston-egl-ext.h
@@ -152,5 +152,8 @@ typedef EGLSurface (EGLAPIENTRYP 
PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLD
 #define EGL_PLATFORM_X11_KHR 0x31D5
 #endif
 
+#ifndef EGL_NO_CONFIG_KHR
+#define EGL_NO_CONFIG_KHR ((EGLConfig)0)
+#endif
 
 #endif
-- 
2.10.0

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to