Lines Matching refs:debug
69 * An error, warning, or other piece of debug information for an application
185 * building a giant enum list of all debug output messages that Mesa might
403 * Allocate and initialize context debug state.
408 struct gl_debug_state *debug;
411 debug = CALLOC_STRUCT(gl_debug_state);
412 if (!debug)
415 debug->Groups[0] = malloc(sizeof(*debug->Groups[0]));
416 if (!debug->Groups[0]) {
417 free(debug);
421 /* Initialize state for filtering known debug messages. */
424 debug_namespace_init(&debug->Groups[0]->Namespaces[s][t]);
427 return debug;
431 * Return true if the top debug group points to the group below it.
434 debug_is_group_read_only(const struct gl_debug_state *debug)
436 const GLint gstack = debug->CurrentGroup;
437 return (gstack > 0 && debug->Groups[gstack] == debug->Groups[gstack - 1]);
441 * Make the top debug group writable.
444 debug_make_group_writable(struct gl_debug_state *debug)
446 const GLint gstack = debug->CurrentGroup;
447 const struct gl_debug_group *src = debug->Groups[gstack];
451 if (!debug_is_group_read_only(debug))
475 debug->Groups[gstack] = dst;
481 * Free the top debug group.
484 debug_clear_group(struct gl_debug_state *debug)
486 const GLint gstack = debug->CurrentGroup;
488 if (!debug_is_group_read_only(debug)) {
489 struct gl_debug_group *grp = debug->Groups[gstack];
500 debug->Groups[gstack] = NULL;
504 * Delete the oldest debug messages out of the log.
507 debug_delete_messages(struct gl_debug_state *debug, int count)
509 struct gl_debug_log *log = &debug->Log;
526 * Loop through debug group stack tearing down states for
527 * filtering debug messages. Then free debug output state.
530 debug_destroy(struct gl_debug_state *debug)
532 while (debug->CurrentGroup > 0) {
533 debug_clear_group(debug);
534 debug->CurrentGroup--;
537 debug_clear_group(debug);
538 debug_delete_messages(debug, debug->Log.NumMessages);
539 free(debug);
546 debug_set_message_enable(struct gl_debug_state *debug,
551 const GLint gstack = debug->CurrentGroup;
554 debug_make_group_writable(debug);
555 ns = &debug->Groups[gstack]->Namespaces[source][type];
572 debug_set_message_enable_all(struct gl_debug_state *debug,
578 const GLint gstack = debug->CurrentGroup;
595 debug_make_group_writable(debug);
600 &debug->Groups[gstack]->Namespaces[s][t];
610 _mesa_debug_is_message_enabled(const struct gl_debug_state *debug,
616 const GLint gstack = debug->CurrentGroup;
617 struct gl_debug_group *grp = debug->Groups[gstack];
620 if (!debug->DebugOutput)
633 debug_log_message(struct gl_debug_state *debug,
639 struct gl_debug_log *log = &debug->Log;
643 if (debug->LogToStderr) {
644 _mesa_log("Mesa debug output: %.*s\n", len, buf);
663 * Return the oldest debug message out of the log.
666 debug_fetch_message(const struct gl_debug_state *debug)
668 const struct gl_debug_log *log = &debug->Log;
674 debug_get_group_message(struct gl_debug_state *debug)
676 return &debug->GroupMessages[debug->CurrentGroup];
680 debug_push_group(struct gl_debug_state *debug)
682 const GLint gstack = debug->CurrentGroup;
685 debug->Groups[gstack + 1] = debug->Groups[gstack];
686 debug->CurrentGroup++;
690 debug_pop_group(struct gl_debug_state *debug)
692 debug_clear_group(debug);
693 debug->CurrentGroup--;
698 * Lock and return debug state for the context. The debug state will be
700 * debug state is not locked.
718 _mesa_error(ctx, GL_OUT_OF_MEMORY, "allocating debug state");
734 * Set the integer debug state specified by \p pname. This can be called from
740 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
742 if (!debug)
747 debug->DebugOutput = (val != 0);
750 debug->SyncOutput = (val != 0);
753 assert(!"unknown debug output param");
763 * Query the integer debug state specified by \p pname. This can be called
771 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
772 if (!debug)
777 val = debug->DebugOutput;
780 val = debug->SyncOutput;
783 val = debug->Log.NumMessages;
786 val = (debug->Log.NumMessages) ?
787 debug->Log.Messages[debug->Log.NextMessage].length + 1 : 0;
790 val = debug->CurrentGroup + 1;
793 assert(!"unknown debug output param");
804 * Query the pointer debug state specified by \p pname. This can be called
811 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
813 if (!debug)
818 val = (void *) debug->Callback;
821 val = (void *) debug->CallbackData;
824 assert(!"unknown debug output param");
835 * Insert a debug message. The mutex is assumed to be locked, and will be
845 struct gl_debug_state *debug = ctx->Debug;
847 if (!_mesa_debug_is_message_enabled(debug, source, type, id, severity)) {
869 /* add debug message to queue */
876 * Log a client or driver debug message.
883 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
885 if (!debug)
1040 struct gl_debug_state *debug;
1059 debug = _mesa_lock_debug_state(ctx);
1060 if (!debug)
1064 const struct gl_debug_message *msg = debug_fetch_message(debug);
1096 debug_delete_messages(debug, 1);
1115 struct gl_debug_state *debug;
1142 debug = _mesa_lock_debug_state(ctx);
1143 if (!debug)
1149 debug_set_message_enable(debug, source, type, ids[i], enabled);
1152 debug_set_message_enable_all(debug, source, type, severity, enabled);
1163 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
1164 if (debug) {
1165 debug->Callback = callback;
1166 debug->CallbackData = userParam;
1178 struct gl_debug_state *debug;
1202 debug = _mesa_lock_debug_state(ctx);
1203 if (!debug)
1206 if (debug->CurrentGroup >= MAX_DEBUG_GROUP_STACK_DEPTH-1) {
1213 emptySlot = debug_get_group_message(debug);
1221 debug_push_group(debug);
1236 struct gl_debug_state *debug;
1244 debug = _mesa_lock_debug_state(ctx);
1245 if (!debug)
1248 if (debug->CurrentGroup <= 0) {
1254 debug_pop_group(debug);
1257 gdmessage = debug_get_group_message(debug);
1280 * GL_CONTEXT_FLAG_DEBUG_BIT context flag and log debug output
1283 struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
1284 if (!debug) {
1287 debug->DebugOutput = GL_TRUE;
1288 debug->LogToStderr = GL_TRUE;