[Mesa-dev] [PATCH v2 1/7] egl/surfaceless: print out a message on zero configs for given format

Emil Velikov emil.l.velikov at gmail.com
Fri Sep 16 17:23:00 UTC 2016


From: Emil Velikov <emil.velikov at collabora.com>

Currently we print a debug message if the total configs is non-zero only
to do the same (at an error level) as we return from the function.

Rework the message to print if we're missing a config for the given
format.

Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
Reviewed-by: Gurchetan Singh <gurchetansingh at chromium.org>
---
 src/egl/drivers/dri2/platform_surfaceless.c | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c
index 386aa7a..9e2aa7c 100644
--- a/src/egl/drivers/dri2/platform_surfaceless.c
+++ b/src/egl/drivers/dri2/platform_surfaceless.c
@@ -181,28 +181,37 @@ static EGLBoolean
 surfaceless_add_configs_for_visuals(_EGLDriver *drv, _EGLDisplay *dpy)
 {
    struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
-   static const unsigned int visuals[3][4] = {
-      { 0xff0000, 0xff00, 0xff, 0xff000000 },   // ARGB8888
-      { 0xff0000, 0xff00, 0xff, 0x0 },          // RGB888
-      { 0xf800, 0x7e0, 0x1f, 0x0  },            // RGB565
+   static const struct {
+      const char *format_name;
+      unsigned int rgba_masks[4];
+   } visuals[] = {
+      { "ARGB8888", { 0xff0000, 0xff00, 0xff, 0xff000000 } },
+      { "RGB888",   { 0xff0000, 0xff00, 0xff, 0x0 } },
+      { "RGB565",   { 0x00f800, 0x07e0, 0x1f, 0x0 } },
    };
    unsigned int count, i, j;
 
    count = 0;
    for (i = 0; i < ARRAY_SIZE(visuals); i++) {
+      int format_count = 0;
+
       for (j = 0; dri2_dpy->driver_configs[j]; j++) {
          struct dri2_egl_config *dri2_conf;
 
          dri2_conf = dri2_add_config(dpy, dri2_dpy->driver_configs[j],
-               count + 1, EGL_PBUFFER_BIT, NULL, visuals[i]);
+               count + 1, EGL_PBUFFER_BIT, NULL, visuals[i].rgba_masks);
 
-         if (dri2_conf)
+         if (dri2_conf) {
             count++;
+            format_count++;
+         }
       }
-   }
 
-   if (!count)
-      _eglLog(_EGL_DEBUG, "Can't create surfaceless visuals");
+      if (!format_count) {
+         _eglLog(_EGL_DEBUG, "No DRI config supports native format %s",
+               visuals[i].format_name);
+      }
+   }
 
    return (count != 0);
 }
-- 
2.9.3



More information about the mesa-dev mailing list