Mesa (master): glx: Add an error message when a direct renderer' s createScreen() routine fails

Jon TURNEY jturney at kemper.freedesktop.org
Wed Jun 18 08:57:05 UTC 2014


Module: Mesa
Branch: master
Commit: 83821ece79011d21303058e30694dd3796d072f2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=83821ece79011d21303058e30694dd3796d072f2

Author: Jon TURNEY <jon.turney at dronecode.org.uk>
Date:   Sat May 10 11:04:44 2014 +0100

glx: Add an error message when a direct renderer's createScreen() routine fails
because no matching fbConfigs or visuals could be found.

Nearly all the error cases in *createScreen() issue an error message to diagnose
the failure to initialize before branching to handle_error.  The few remaining
error cases which don't should probably do the same.

(At the moment, it seems this can be triggered in drisw with an X server which
reports definite values for MAX_PBUFFFER_(WIDTH|HEIGHT|SIZE), because those
attributes are checked for an exact match against 0.)

Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/glx/dri2_glx.c  |    4 +++-
 src/glx/dri3_glx.c  |    4 +++-
 src/glx/dri_glx.c   |    4 +++-
 src/glx/drisw_glx.c |    4 +++-
 4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index bd7ed8b..462d560 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -1263,8 +1263,10 @@ dri2CreateScreen(int screen, struct glx_display * priv)
    configs = driConvertConfigs(psc->core, psc->base.configs, driver_configs);
    visuals = driConvertConfigs(psc->core, psc->base.visuals, driver_configs);
 
-   if (!configs || !visuals)
+   if (!configs || !visuals) {
+       ErrorMessageF("No matching fbConfigs or visuals found\n");
        goto handle_error;
+   }
 
    glx_config_destroy_list(psc->base.configs);
    psc->base.configs = configs;
diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c
index 3d8a662..55eed39 100644
--- a/src/glx/dri3_glx.c
+++ b/src/glx/dri3_glx.c
@@ -1741,8 +1741,10 @@ dri3_create_screen(int screen, struct glx_display * priv)
    configs = driConvertConfigs(psc->core, psc->base.configs, driver_configs);
    visuals = driConvertConfigs(psc->core, psc->base.visuals, driver_configs);
 
-   if (!configs || !visuals)
+   if (!configs || !visuals) {
+       ErrorMessageF("No matching fbConfigs or visuals found\n");
        goto handle_error;
+   }
 
    glx_config_destroy_list(psc->base.configs);
    psc->base.configs = configs;
diff --git a/src/glx/dri_glx.c b/src/glx/dri_glx.c
index 04a0847..5295331 100644
--- a/src/glx/dri_glx.c
+++ b/src/glx/dri_glx.c
@@ -460,8 +460,10 @@ CallCreateNewScreen(Display *dpy, int scrn, struct dri_screen *psc,
    configs = driConvertConfigs(psc->core, psc->base.configs, driver_configs);
    visuals = driConvertConfigs(psc->core, psc->base.visuals, driver_configs);
 
-   if (!configs || !visuals)
+   if (!configs || !visuals) {
+       ErrorMessageF("No matching fbConfigs or visuals found\n");
        goto handle_error;
+   }
 
    glx_config_destroy_list(psc->base.configs);
    psc->base.configs = configs;
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index 5885b66..fcb5d8f 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -733,8 +733,10 @@ driswCreateScreen(int screen, struct glx_display *priv)
    configs = driConvertConfigs(psc->core, psc->base.configs, driver_configs);
    visuals = driConvertConfigs(psc->core, psc->base.visuals, driver_configs);
 
-   if (!configs || !visuals)
+   if (!configs || !visuals) {
+       ErrorMessageF("No matching fbConfigs or visuals found\n");
        goto handle_error;
+   }
 
    glx_config_destroy_list(psc->base.configs);
    psc->base.configs = configs;




More information about the mesa-commit mailing list