glsl: don't crash when dumping shaders if some come from cache

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Timothy Arceri 2016-03-27 16:25:12 +11:00
parent 87ab26b2ab
commit 3eb0baeecf
2 changed files with 17 additions and 6 deletions

View file

@ -183,10 +183,16 @@ process_glsl_ir(struct brw_context *brw,
if (ctx->_Shader->Flags & GLSL_DUMP) {
fprintf(stderr, "\n");
fprintf(stderr, "GLSL IR for linked %s program %d:\n",
_mesa_shader_stage_to_string(shader->Stage),
shader_prog->Name);
_mesa_print_ir(stderr, shader->ir, NULL);
if (shader->ir) {
fprintf(stderr, "GLSL IR for linked %s program %d:\n",
_mesa_shader_stage_to_string(shader->Stage),
shader_prog->Name);
_mesa_print_ir(stderr, shader->ir, NULL);
} else {
fprintf(stderr, "No GLSL IR for linked %s program %d (shader may be "
"from cache)\n", _mesa_shader_stage_to_string(shader->Stage),
shader_prog->Name);
}
fprintf(stderr, "\n");
}
}

View file

@ -1039,8 +1039,13 @@ _mesa_compile_shader(struct gl_context *ctx, struct gl_shader *sh)
if (ctx->_Shader->Flags & GLSL_DUMP) {
if (sh->CompileStatus) {
_mesa_log("GLSL IR for shader %d:\n", sh->Name);
_mesa_print_ir(_mesa_get_log_file(), sh->ir, NULL);
if (sh->ir) {
_mesa_log("GLSL IR for shader %d:\n", sh->Name);
_mesa_print_ir(_mesa_get_log_file(), sh->ir, NULL);
} else {
_mesa_log("No GLSL IR for shader %d (shader may be from "
"cache)\n", sh->Name);
}
_mesa_log("\n\n");
} else {
_mesa_log("GLSL shader %d failed to compile.\n", sh->Name);