summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomek Bury <tomek.bury@broadcom.com>2020-06-04 14:59:55 +0100
committerTomek Bury <tomek.bury@broadcom.com>2020-06-11 10:52:22 +0100
commitba54831100ab3a0488b3bb84381e9ca9668978a9 (patch)
treee74dcf335cfd35b793f6ce669b234825851df88b
parent15c603caa6f1fbd06bc866a4131dbbd26f941c1f (diff)
downloadweston-ba54831100ab3a0488b3bb84381e9ca9668978a9.tar.gz
gl-renderer: fix pbuffer surface creation
When there's neither configless nor surfaceless EGL extension (i.e. not a Mesa driver), Weston falls back to a dummy pbuffer surface. Weston attempts to find for that surface an EGL config but uses a NULL array of pixel formats. This fails with the following messages: EGL_KHR_surfaceless_context unavailable. Trying PbufferSurface Found an EGLConfig matching { pbf; } but it is not usable because neither EGL_KHR_no_config_context nor EGL_MESA_configless_context are supported by EGL. failed to choose EGL config for PbufferSurface EGL error state: EGL_SUCCESS (0x3000) Failed to initialise the GL renderer; Signed-off-by: Tomek Bury <tomek.bury@broadcom.com>
-rw-r--r--libweston/renderer-gl/gl-renderer.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
index 505d0559..937ebe86 100644
--- a/libweston/renderer-gl/gl-renderer.c
+++ b/libweston/renderer-gl/gl-renderer.c
@@ -3448,8 +3448,12 @@ gl_renderer_create_pbuffer_surface(struct gl_renderer *gr) {
EGL_NONE
};
- pbuffer_config = gl_renderer_get_egl_config(gr, EGL_PBUFFER_BIT,
- NULL, 0);
+ pbuffer_config = gr->egl_config;
+ if (pbuffer_config == EGL_NO_CONFIG_KHR) {
+ pbuffer_config =
+ gl_renderer_get_egl_config(gr, EGL_PBUFFER_BIT,
+ NULL, 0);
+ }
if (pbuffer_config == EGL_NO_CONFIG_KHR) {
weston_log("failed to choose EGL config for PbufferSurface\n");
return -1;