cogl/egl: Choose config only if needed
In try_create_context(), if COGL_EGL_WINSYS_FEATURE_NO_CONFIG_CONTEXT is set, don't try to choose an egl config. Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4088>
This commit is contained in:
parent
fb86d5d5b0
commit
18085b0e40
@ -121,6 +121,8 @@ typedef struct _CoglRendererEGL
|
||||
/* vtable for platform specific parts */
|
||||
const CoglWinsysEGLVtable *platform_vtable;
|
||||
|
||||
gboolean needs_config;
|
||||
|
||||
/* Sync for latest submitted work */
|
||||
EGLSyncKHR sync;
|
||||
|
||||
|
@ -243,6 +243,7 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer,
|
||||
|
||||
egl_renderer->platform_vtable = &_cogl_winsys_egl_vtable;
|
||||
egl_renderer->sync = EGL_NO_SYNC_KHR;
|
||||
egl_renderer->needs_config = TRUE;
|
||||
|
||||
if (!_cogl_xlib_renderer_connect (renderer, error))
|
||||
goto error;
|
||||
|
@ -318,19 +318,24 @@ try_create_context (CoglDisplay *display,
|
||||
|
||||
edpy = egl_renderer->edpy;
|
||||
|
||||
if (!egl_renderer->platform_vtable->choose_config (display,
|
||||
cfg_attribs,
|
||||
&config,
|
||||
&config_error))
|
||||
if (!(egl_renderer->private_features &
|
||||
COGL_EGL_WINSYS_FEATURE_NO_CONFIG_CONTEXT) ||
|
||||
egl_renderer->needs_config)
|
||||
{
|
||||
g_set_error (error, COGL_WINSYS_ERROR,
|
||||
COGL_WINSYS_ERROR_CREATE_CONTEXT,
|
||||
"Couldn't choose config: %s", config_error->message);
|
||||
g_error_free (config_error);
|
||||
goto err;
|
||||
}
|
||||
if (!egl_renderer->platform_vtable->choose_config (display,
|
||||
cfg_attribs,
|
||||
&config,
|
||||
&config_error))
|
||||
{
|
||||
g_set_error (error, COGL_WINSYS_ERROR,
|
||||
COGL_WINSYS_ERROR_CREATE_CONTEXT,
|
||||
"Couldn't choose config: %s", config_error->message);
|
||||
g_error_free (config_error);
|
||||
goto err;
|
||||
}
|
||||
|
||||
egl_display->egl_config = config;
|
||||
egl_display->egl_config = config;
|
||||
}
|
||||
|
||||
if (display->renderer->driver == COGL_DRIVER_GL3)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user