Lines Matching refs:debug
71 * An error, warning, or other piece of debug information for an application
187 * building a giant enum list of all debug output messages that Mesa might
390 * Allocate and initialize context debug state.
395 struct gl_debug_state *debug;
398 debug = CALLOC_STRUCT(gl_debug_state);
399 if (!debug)
402 debug->Groups[0] = malloc(sizeof(*debug->Groups[0]));
403 if (!debug->Groups[0]) {
404 free(debug);
408 /* Initialize state for filtering known debug messages. */
411 debug_namespace_init(&debug->Groups[0]->Namespaces[s][t]);
414 return debug;
418 * Return true if the top debug group points to the group below it.
421 debug_is_group_read_only(const struct gl_debug_state *debug)
423 const GLint gstack = debug->CurrentGroup;
424 return (gstack > 0 && debug->Groups[gstack] == debug->Groups[gstack - 1]);
428 * Make the top debug group writable.
431 debug_make_group_writable(struct gl_debug_state *debug)
433 const GLint gstack = debug->CurrentGroup;
434 const struct gl_debug_group *src = debug->Groups[gstack];
438 if (!debug_is_group_read_only(debug))
462 debug->Groups[gstack] = dst;
468 * Free the top debug group.
471 debug_clear_group(struct gl_debug_state *debug)
473 const GLint gstack = debug->CurrentGroup;
475 if (!debug_is_group_read_only(debug)) {
476 struct gl_debug_group *grp = debug->Groups[gstack];
487 debug->Groups[gstack] = NULL;
491 * Delete the oldest debug messages out of the log.
494 debug_delete_messages(struct gl_debug_state *debug, int count)
496 struct gl_debug_log *log = &debug->Log;
513 * Loop through debug group stack tearing down states for
514 * filtering debug messages. Then free debug output state.
517 debug_destroy(struct gl_debug_state *debug)
519 while (debug->CurrentGroup > 0) {
520 debug_clear_group(debug);
521 debug->CurrentGroup--;
524 debug_clear_group(debug);
525 debug_delete_messages(debug, debug->Log.NumMessages);
526 free(debug);
533 debug_set_message_enable(struct gl_debug_state *debug,
538 const GLint gstack = debug->CurrentGroup;
541 debug_make_group_writable(debug);
542 ns = &debug->Groups[gstack]->Namespaces[source][type];
559 debug_set_message_enable_all(struct gl_debug_state *debug,
565 const GLint gstack = debug->CurrentGroup;
582 debug_make_group_writable(debug);
587 &debug->Groups[gstack]->Namespaces[s][t];
597 _mesa_debug_is_message_enabled(const struct gl_debug_state *debug,
603 const GLint gstack = debug->CurrentGroup;
604 struct gl_debug_group *grp = debug->Groups[gstack];
607 if (!debug->DebugOutput)
620 debug_log_message(struct gl_debug_state *debug,
626 struct gl_debug_log *log = &debug->Log;
630 if (debug->LogToStderr) {
631 _mesa_log("Mesa debug output: %.*s\n", len, buf);
650 * Return the oldest debug message out of the log.
653 debug_fetch_message(const struct gl_debug_state *debug)
655 const struct gl_debug_log *log = &debug->Log;
661 debug_get_group_message(struct gl_debug_state *debug)
663 return &debug->GroupMessages[debug->CurrentGroup];
667 debug_push_group(struct gl_debug_state *debug)
669 const GLint gstack = debug->CurrentGroup;
672 debug->Groups[gstack + 1] = debug->Groups[gstack];
673 debug->CurrentGroup++;
677 debug_pop_group(struct gl_debug_state *debug)
679 debug_clear_group(debug);
680 debug->CurrentGroup--;
736 unreachable("invalid debug type");
762 * Lock and return debug state for the context. The debug state will be
764 * debug state is not locked.
782 _mesa_error(ctx, GL_OUT_OF_MEMORY, "allocating debug state");
798 * Set the integer debug state specified by \p pname. This can be called from
804 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
806 if (!debug)
811 debug->DebugOutput = (val != 0);
814 debug->SyncOutput = (val != 0);
817 assert(!"unknown debug output param");
827 * Query the integer debug state specified by \p pname. This can be called
835 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
836 if (!debug)
841 val = debug->DebugOutput;
844 val = debug->SyncOutput;
847 val = debug->Log.NumMessages;
850 val = (debug->Log.NumMessages) ?
851 debug->Log.Messages[debug->Log.NextMessage].length + 1 : 0;
854 val = debug->CurrentGroup + 1;
857 assert(!"unknown debug output param");
868 * Query the pointer debug state specified by \p pname. This can be called
875 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
877 if (!debug)
882 val = (void *) debug->Callback;
885 val = (void *) debug->CallbackData;
888 assert(!"unknown debug output param");
899 * Insert a debug message. The mutex is assumed to be locked, and will be
909 struct gl_debug_state *debug = ctx->Debug;
911 if (!_mesa_debug_is_message_enabled(debug, source, type, id, severity)) {
933 /* add debug message to queue */
940 * Log a client or driver debug message.
947 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
949 if (!debug)
1104 struct gl_debug_state *debug;
1123 debug = _mesa_lock_debug_state(ctx);
1124 if (!debug)
1128 const struct gl_debug_message *msg = debug_fetch_message(debug);
1160 debug_delete_messages(debug, 1);
1179 struct gl_debug_state *debug;
1206 debug = _mesa_lock_debug_state(ctx);
1207 if (!debug)
1213 debug_set_message_enable(debug, source, type, ids[i], enabled);
1216 debug_set_message_enable_all(debug, source, type, severity, enabled);
1227 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
1228 if (debug) {
1229 debug->Callback = callback;
1230 debug->CallbackData = userParam;
1242 struct gl_debug_state *debug;
1266 debug = _mesa_lock_debug_state(ctx);
1267 if (!debug)
1270 if (debug->CurrentGroup >= MAX_DEBUG_GROUP_STACK_DEPTH-1) {
1277 emptySlot = debug_get_group_message(debug);
1285 debug_push_group(debug);
1300 struct gl_debug_state *debug;
1308 debug = _mesa_lock_debug_state(ctx);
1309 if (!debug)
1312 if (debug->CurrentGroup <= 0) {
1318 debug_pop_group(debug);
1321 gdmessage = debug_get_group_message(debug);
1344 * GL_CONTEXT_FLAG_DEBUG_BIT context flag and log debug output
1347 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
1348 if (!debug) {
1351 debug->DebugOutput = GL_TRUE;
1352 debug->LogToStderr = GL_TRUE;