ir_to_mesa: Print shader source and compiled IR under MESA_GLSL=dump.
While the Mesa IR dumping includes some corresponding GLSL IR for correlating Mesa IR to GLSL IR, it doesn't completely express it. This printing includes things like variable declarations and control flow structure that is hard to read otherwise.
This commit is contained in:
@@ -2545,7 +2545,14 @@ get_mesa_program(GLcontext *ctx, struct gl_shader_program *shader_program,
|
||||
|
||||
set_branchtargets(&v, mesa_instructions, num_instructions);
|
||||
if (ctx->Shader.Flags & GLSL_DUMP) {
|
||||
printf("Mesa %s program:\n", target_string);
|
||||
printf("\n");
|
||||
printf("GLSL IR for linked %s program %d:\n", target_string,
|
||||
shader_program->Name);
|
||||
_mesa_print_ir(shader->ir, NULL);
|
||||
printf("\n");
|
||||
printf("\n");
|
||||
printf("Mesa IR for linked %s program %d:\n", target_string,
|
||||
shader_program->Name);
|
||||
print_program(mesa_instructions, mesa_instruction_annotation,
|
||||
num_instructions);
|
||||
}
|
||||
@@ -2635,6 +2642,15 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader)
|
||||
_mesa_write_shader_to_file(shader);
|
||||
}
|
||||
|
||||
if (ctx->Shader.Flags & GLSL_DUMP) {
|
||||
printf("GLSL source for shader %d:\n", shader->Name);
|
||||
printf("%s\n", shader->Source);
|
||||
|
||||
printf("GLSL IR for shader %d:\n", shader->Name);
|
||||
_mesa_print_ir(shader->ir, NULL);
|
||||
printf("\n\n");
|
||||
}
|
||||
|
||||
/* Retain any live IR, but trash the rest. */
|
||||
reparent_ir(shader->ir, shader);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user