From 446485991d546e4a75005a9f344d0b1db0fd5140 Mon Sep 17 00:00:00 2001 From: stefan11111 Date: Wed, 28 Jan 2026 03:09:46 +0200 Subject: [PATCH] kdrive/fbdev: Try creating a no-config egl context first, and skip config chosing Signed-off-by: stefan11111 --- hw/kdrive/fbdev/fb_glamor.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/hw/kdrive/fbdev/fb_glamor.c b/hw/kdrive/fbdev/fb_glamor.c index c648012431..d1daad3d05 100644 --- a/hw/kdrive/fbdev/fb_glamor.c +++ b/hw/kdrive/fbdev/fb_glamor.c @@ -497,13 +497,20 @@ fbdev_glamor_egl_try_big_gl_api(FbdevScrPriv *scrpriv) return FALSE; } - fbdev_glamor_egl_chose_configs(scrpriv->display, config_attrib_list, - &configs, &num_configs); - + /* Try creating a no-config context, maybe we can skip all the config stuff */ scrpriv->ctx = fbdev_glamor_egl_create_context(scrpriv->display, - configs, num_configs, + NULL, 1, ctx_attrib_lists, ARR_SIZE(ctx_attrib_lists)); + if (scrpriv->ctx == EGL_NO_CONTEXT) { + fbdev_glamor_egl_chose_configs(scrpriv->display, config_attrib_list, + &configs, &num_configs); + + scrpriv->ctx = fbdev_glamor_egl_create_context(scrpriv->display, + configs, num_configs, + ctx_attrib_lists, + ARR_SIZE(ctx_attrib_lists)); + } free(configs); configs = NULL; @@ -555,14 +562,22 @@ fbdev_glamor_egl_try_gles_api(FbdevScrPriv *scrpriv) EGLConfig *configs = NULL; EGLint num_configs = 0; - fbdev_glamor_egl_chose_configs(scrpriv->display, config_attrib_list, - &configs, &num_configs); - + /* Try creating a no-config context, maybe we can skip all the config stuff */ scrpriv->ctx = fbdev_glamor_egl_create_context(scrpriv->display, - configs, num_configs, + NULL, 1, ctx_attrib_lists, ARR_SIZE(ctx_attrib_lists)); + if (scrpriv->ctx == EGL_NO_CONTEXT) { + fbdev_glamor_egl_chose_configs(scrpriv->display, config_attrib_list, + &configs, &num_configs); + + scrpriv->ctx = fbdev_glamor_egl_create_context(scrpriv->display, + configs, num_configs, + ctx_attrib_lists, + ARR_SIZE(ctx_attrib_lists)); + } + free(configs); configs = NULL; num_configs = 0;