Ver código fonte

glsl: report errors via GL_ARB_debug_output

Reviewed-by: Brian Paul <brianp@vmware.com>
tags/i965-primitive-restart-v2
Dylan Noblesmith 13 anos atrás
pai
commit
d5a10dba64

+ 11
- 0
src/glsl/glsl_parser_extras.cpp Ver arquivo

@@ -146,12 +146,23 @@ _mesa_glsl_msg(const YYLTYPE *locp, _mesa_glsl_parse_state *state,
bool error = (type == GL_DEBUG_TYPE_ERROR_ARB);

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: ",
locp->source,
locp->first_line,
locp->first_column,
error ? "error" : "warning");
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");
}


+ 6
- 0
src/glsl/standalone_scaffolding.cpp Ver arquivo

@@ -41,6 +41,12 @@ _mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
*ptr = sh;
}

void
_mesa_shader_debug(struct gl_context *, GLenum, GLuint,
const char *, int)
{
}

struct gl_shader *
_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
{

+ 4
- 0
src/glsl/standalone_scaffolding.h Ver arquivo

@@ -40,6 +40,10 @@ _mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
extern "C" struct gl_shader *
_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
* defaults representing the minimum capabilities required by the

Carregando…
Cancelar
Salvar