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:
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user