mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
mesa: add _mesa_shader_debug()
This should be the one entrypoint libglsl needs for GL_ARB_debug_output. v2: added comments. Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
48e8a010ae
commit
58fee81c78
2 changed files with 46 additions and 0 deletions
|
|
@ -1062,4 +1062,47 @@ _mesa_debug( const struct gl_context *ctx, const char *fmtString, ... )
|
|||
(void) fmtString;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Report debug information from the shader compiler via GL_ARB_debug_output.
|
||||
*
|
||||
* \param ctx GL context.
|
||||
* \param type The namespace to which this message belongs.
|
||||
* \param id The message ID within the given namespace.
|
||||
* \param msg The message to output. Need not be null-terminated.
|
||||
* \param len The length of 'msg'. If negative, 'msg' must be null-terminated.
|
||||
*/
|
||||
void
|
||||
_mesa_shader_debug( struct gl_context *ctx, GLenum type, GLuint id,
|
||||
const char *msg, int len )
|
||||
{
|
||||
GLenum source = GL_DEBUG_SOURCE_SHADER_COMPILER_ARB,
|
||||
severity;
|
||||
|
||||
switch (type) {
|
||||
case GL_DEBUG_TYPE_ERROR_ARB:
|
||||
assert(id < SHADER_ERROR_COUNT);
|
||||
severity = GL_DEBUG_SEVERITY_HIGH_ARB;
|
||||
break;
|
||||
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB:
|
||||
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB:
|
||||
case GL_DEBUG_TYPE_PORTABILITY_ARB:
|
||||
case GL_DEBUG_TYPE_PERFORMANCE_ARB:
|
||||
case GL_DEBUG_TYPE_OTHER_ARB:
|
||||
assert(0 && "other categories not implemented yet");
|
||||
default:
|
||||
_mesa_problem(ctx, "bad enum in _mesa_shader_debug()");
|
||||
return;
|
||||
}
|
||||
|
||||
if (len < 0)
|
||||
len = strlen(msg);
|
||||
|
||||
/* Truncate the message if necessary. */
|
||||
if (len >= MAX_DEBUG_MESSAGE_LENGTH)
|
||||
len = MAX_DEBUG_MESSAGE_LENGTH - 1;
|
||||
|
||||
_mesa_log_msg(ctx, source, type, id, severity, len, msg);
|
||||
}
|
||||
|
||||
/*@}*/
|
||||
|
|
|
|||
|
|
@ -68,6 +68,9 @@ _mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... )
|
|||
extern void
|
||||
_mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3);
|
||||
|
||||
extern void
|
||||
_mesa_shader_debug( struct gl_context *ctx, GLenum type, GLuint id, const char *msg, int len );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue