dri: Add a CriticalErrorMessageF macro.

Sometimes an error is so sever that we want to print it even when the
user hasn't specifically requested debugging by setting LIBGL_DEBUG.

Add a CriticalErrorMessageF macro to be used for this case. (The error
message can still be slienced with the existing LIBGL_DEBUG=quiet).

For critical error messages we also direct the user to set the
LIBGL_DEBUG environment variable for more details.

Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
This commit is contained in:
Carl Worth
2012-02-03 16:17:29 -08:00
parent c09504c343
commit 92bef0bfa1
2 changed files with 26 additions and 0 deletions
+24
View File
@@ -84,6 +84,30 @@ ErrorMessageF(const char *f, ...)
}
}
/**
* Print error message unless LIBGL_DEBUG is set to "quiet".
*
* The distinction between CriticalErrorMessageF and ErrorMessageF is
* that critcial errors will be printed by default, (even when
* LIBGL_DEBUG is unset).
*/
_X_HIDDEN void
CriticalErrorMessageF(const char *f, ...)
{
va_list args;
const char *env;
if (!(env = getenv("LIBGL_DEBUG")) || !strstr(env, "quiet")) {
fprintf(stderr, "libGL error: ");
va_start(args, f);
vfprintf(stderr, f, args);
va_end(args);
if (!env || !strstr(env, "verbose"))
fprintf(stderr, "libGL error: Try again with LIBGL_DEBUG=verbose for more details.\n");
}
}
#ifndef DEFAULT_DRIVER_DIR
/* this is normally defined in Mesa/configs/default with DRI_DRIVER_SEARCH_PATH */
#define DEFAULT_DRIVER_DIR "/usr/local/lib/dri"
+2
View File
@@ -65,6 +65,8 @@ extern void InfoMessageF(const char *f, ...);
extern void ErrorMessageF(const char *f, ...);
extern void CriticalErrorMessageF(const char *f, ...);
extern void *driOpenDriver(const char *driverName);
extern bool