This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch fix-release-build
in repository efl.

View the commit online.

commit e8bcf23d841140c3ddce1a48febb9bb02578fb35
Author: Cedric BAIL <[email protected]>
AuthorDate: Tue Aug 4 22:01:34 2026 -0600

    evas/gl_drm: fail when no EGL config matches the scanout format
    
    The config search walks eglChooseConfig()'s results looking for one
    whose EGL_NATIVE_VISUAL_ID equals the DRM format, and if none matches it
    just falls out of the loop and hands egl.config - untouched, so NULL on
    first setup - to eglCreatePlatformWindowSurfaceEXT().
    
    This is latent rather than broken today, but only just. Mesa 24 returns
    XRGB2101010 configs ahead of XRGB8888, and on a rockchip + panfrost box
    the format we want is at index 16 of 40; the loop finds it because it
    scans them all. Nothing guarantees that ordering, and the failure mode
    if it ever changes is a black screen with no diagnostic.
    
    Clear the config before the search, since this runs again on resize and
    would otherwise silently reuse a stale one, and error out if nothing
    matched.
    
    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
---
 src/modules/evas/engines/gl_drm/evas_outbuf.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/modules/evas/engines/gl_drm/evas_outbuf.c b/src/modules/evas/engines/gl_drm/evas_outbuf.c
index 4fa1252b3a..0f825ca48c 100644
--- a/src/modules/evas/engines/gl_drm/evas_outbuf.c
+++ b/src/modules/evas/engines/gl_drm/evas_outbuf.c
@@ -261,6 +261,9 @@ _evas_outbuf_egl_setup(Outbuf *ob)
         goto err;
      }
 
+   /* cleared so the check below sees a failed search rather than a config
+    * left over from an earlier setup (this runs again on resize) */
+   ob->egl.config = NULL;
    for (; i < ncfg; ++i)
      {
         EGLint format = 0;
@@ -279,6 +282,17 @@ _evas_outbuf_egl_setup(Outbuf *ob)
           }
      }
 
+   /* Without this, a driver that offers no config matching the scanout
+    * format leaves egl.config at whatever it happened to hold and we hand
+    * that to eglCreateWindowSurface.  Mesa's config ordering is not
+    * stable across releases, so fail loudly rather than render nothing. */
+   if (!ob->egl.config)
+     {
+        ERR("No EGL config found for DRM format %#x among %d configs",
+            ob->info->info.format, ncfg);
+        goto err;
+     }
+
    if (ob->egl.surface != EGL_NO_SURFACE)
      eglDestroySurface(ob->egl.disp, ob->egl.surface);
    ob->egl.surface = EGL_NO_SURFACE;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to