mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-21 18:00:13 +01:00
glsl: report errors via GL_ARB_debug_output
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
8c99906cf5
commit
d5a10dba64
3 changed files with 21 additions and 0 deletions
|
|
@ -146,12 +146,23 @@ _mesa_glsl_msg(const YYLTYPE *locp, _mesa_glsl_parse_state *state,
|
||||||
bool error = (type == GL_DEBUG_TYPE_ERROR_ARB);
|
bool error = (type == GL_DEBUG_TYPE_ERROR_ARB);
|
||||||
|
|
||||||
assert(state->info_log != NULL);
|
assert(state->info_log != NULL);
|
||||||
|
|
||||||
|
/* Get the offset that the new message will be written to. */
|
||||||
|
int msg_offset = strlen(state->info_log);
|
||||||
|
|
||||||
ralloc_asprintf_append(&state->info_log, "%u:%u(%u): %s: ",
|
ralloc_asprintf_append(&state->info_log, "%u:%u(%u): %s: ",
|
||||||
locp->source,
|
locp->source,
|
||||||
locp->first_line,
|
locp->first_line,
|
||||||
locp->first_column,
|
locp->first_column,
|
||||||
error ? "error" : "warning");
|
error ? "error" : "warning");
|
||||||
ralloc_vasprintf_append(&state->info_log, fmt, ap);
|
ralloc_vasprintf_append(&state->info_log, fmt, ap);
|
||||||
|
|
||||||
|
const char *const msg = &state->info_log[msg_offset];
|
||||||
|
struct gl_context *ctx = state->ctx;
|
||||||
|
/* Report the error via GL_ARB_debug_output. */
|
||||||
|
if (error)
|
||||||
|
_mesa_shader_debug(ctx, type, id, msg, strlen(msg));
|
||||||
|
|
||||||
ralloc_strcat(&state->info_log, "\n");
|
ralloc_strcat(&state->info_log, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,12 @@ _mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
|
||||||
*ptr = sh;
|
*ptr = sh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_mesa_shader_debug(struct gl_context *, GLenum, GLuint,
|
||||||
|
const char *, int)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
struct gl_shader *
|
struct gl_shader *
|
||||||
_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
|
_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,10 @@ _mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
|
||||||
extern "C" struct gl_shader *
|
extern "C" struct gl_shader *
|
||||||
_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type);
|
_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type);
|
||||||
|
|
||||||
|
extern "C" void
|
||||||
|
_mesa_shader_debug(struct gl_context *ctx, GLenum type, GLuint id,
|
||||||
|
const char *msg, int len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize the given gl_context structure to a reasonable set of
|
* Initialize the given gl_context structure to a reasonable set of
|
||||||
* defaults representing the minimum capabilities required by the
|
* defaults representing the minimum capabilities required by the
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue