mesa: additional debug flags for glsl debug/disassembly

This commit is contained in:
Brian Paul
2008-11-01 10:57:25 -06:00
parent 72c914805b
commit 131d42573c
4 changed files with 52 additions and 52 deletions
+24 -28
View File
@@ -150,36 +150,32 @@ void _mesa_print_info( void )
static void add_debug_flags( const char *debug )
{
#ifdef DEBUG
if (_mesa_strstr(debug, "varray"))
MESA_VERBOSE |= VERBOSE_VARRAY;
struct debug_option {
const char *name;
GLbitfield flag;
};
static const struct debug_option debug_opt[] = {
{ "varray", VERBOSE_VARRAY },
{ "tex", VERBOSE_TEXTURE },
{ "imm", VERBOSE_IMMEDIATE },
{ "pipe", VERBOSE_PIPELINE },
{ "driver", VERBOSE_DRIVER },
{ "state", VERBOSE_STATE },
{ "api", VERBOSE_API },
{ "list", VERBOSE_DISPLAY_LIST },
{ "lighting", VERBOSE_LIGHTING },
{ "disassem", VERBOSE_DISASSEM },
{ "glsl", VERBOSE_GLSL }, /* report GLSL compile/link errors */
{ "glsl_dump", VERBOSE_GLSL_DUMP } /* print shader GPU instructions */
};
GLuint i;
if (_mesa_strstr(debug, "tex"))
MESA_VERBOSE |= VERBOSE_TEXTURE;
MESA_VERBOSE = 0x0;
for (i = 0; i < Elements(debug_opt); i++) {
if (_mesa_strstr(debug, debug_opt[i].name))
MESA_VERBOSE |= debug_opt[i].flag;
}
if (_mesa_strstr(debug, "imm"))
MESA_VERBOSE |= VERBOSE_IMMEDIATE;
if (_mesa_strstr(debug, "pipe"))
MESA_VERBOSE |= VERBOSE_PIPELINE;
if (_mesa_strstr(debug, "driver"))
MESA_VERBOSE |= VERBOSE_DRIVER;
if (_mesa_strstr(debug, "state"))
MESA_VERBOSE |= VERBOSE_STATE;
if (_mesa_strstr(debug, "api"))
MESA_VERBOSE |= VERBOSE_API;
if (_mesa_strstr(debug, "list"))
MESA_VERBOSE |= VERBOSE_DISPLAY_LIST;
if (_mesa_strstr(debug, "lighting"))
MESA_VERBOSE |= VERBOSE_LIGHTING;
if (_mesa_strstr(debug, "disassem"))
MESA_VERBOSE |= VERBOSE_DISASSEM;
/* Debug flag:
*/
if (_mesa_strstr(debug, "flush"))
+3 -1
View File
@@ -3128,7 +3128,9 @@ enum _verbose
VERBOSE_LIGHTING = 0x0200,
VERBOSE_PRIMS = 0x0400,
VERBOSE_VERTS = 0x0800,
VERBOSE_DISASSEM = 0x1000
VERBOSE_DISASSEM = 0x1000,
VERBOSE_GLSL = 0x2000,
VERBOSE_GLSL_DUMP = 0x4000
};
+19 -20
View File
@@ -219,6 +219,7 @@ link_uniform_vars(struct gl_shader_program *shProg,
inst->Sampler, map[ inst->Sampler ]);
*/
/* here, texUnit is really samplerUnit */
assert(inst->TexSrcUnit < MAX_SAMPLERS);
inst->TexSrcUnit = samplerMap[inst->TexSrcUnit];
prog->SamplerTargets[inst->TexSrcUnit] = inst->TexSrcTarget;
prog->SamplersUsed |= (1 << inst->TexSrcUnit);
@@ -564,32 +565,30 @@ _slang_link(GLcontext *ctx,
/* notify driver that a new fragment program has been compiled/linked */
ctx->Driver.ProgramStringNotify(ctx, GL_FRAGMENT_PROGRAM_ARB,
&shProg->FragmentProgram->Base);
#if 0
printf("************** original fragment program\n");
_mesa_print_program(&fragProg->Base);
_mesa_print_program_parameters(ctx, &fragProg->Base);
#endif
#if 0
printf("************** linked fragment prog\n");
_mesa_print_program(&shProg->FragmentProgram->Base);
_mesa_print_program_parameters(ctx, &shProg->FragmentProgram->Base);
#endif
if (MESA_VERBOSE & VERBOSE_GLSL_DUMP) {
printf("Mesa original fragment program:\n");
_mesa_print_program(&fragProg->Base);
_mesa_print_program_parameters(ctx, &fragProg->Base);
printf("Mesa post-link fragment program:\n");
_mesa_print_program(&shProg->FragmentProgram->Base);
_mesa_print_program_parameters(ctx, &shProg->FragmentProgram->Base);
}
}
if (vertProg && shProg->VertexProgram) {
/* notify driver that a new vertex program has been compiled/linked */
ctx->Driver.ProgramStringNotify(ctx, GL_VERTEX_PROGRAM_ARB,
&shProg->VertexProgram->Base);
#if 0
printf("************** original vertex program\n");
_mesa_print_program(&vertProg->Base);
_mesa_print_program_parameters(ctx, &vertProg->Base);
#endif
#if 0
printf("************** linked vertex prog\n");
_mesa_print_program(&shProg->VertexProgram->Base);
_mesa_print_program_parameters(ctx, &shProg->VertexProgram->Base);
#endif
if (MESA_VERBOSE & VERBOSE_GLSL_DUMP) {
printf("Mesa original vertex program:\n");
_mesa_print_program(&vertProg->Base);
_mesa_print_program_parameters(ctx, &vertProg->Base);
printf("Mesa post-link vertex program:\n");
_mesa_print_program(&shProg->VertexProgram->Base);
_mesa_print_program_parameters(ctx, &shProg->VertexProgram->Base);
}
}
shProg->LinkStatus = (shProg->VertexProgram || shProg->FragmentProgram);
+6 -3
View File
@@ -23,6 +23,7 @@
*/
#include "main/imports.h"
#include "main/context.h"
#include "slang_log.h"
#include "slang_utility.h"
@@ -86,9 +87,11 @@ slang_info_log_message(slang_info_log * log, const char *prefix,
}
slang_string_concat(log->text, msg);
slang_string_concat(log->text, "\n");
#if 0 /* debug */
_mesa_printf("Mesa GLSL error/warning: %s\n", log->text);
#endif
if (MESA_VERBOSE & VERBOSE_GLSL) {
_mesa_printf("Mesa: GLSL %s\n", log->text);
}
return 1;
}