diff options
Diffstat (limited to 'src/intel/compiler/brw_vec4_generator.cpp')
-rw-r--r-- | src/intel/compiler/brw_vec4_generator.cpp | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/src/intel/compiler/brw_vec4_generator.cpp b/src/intel/compiler/brw_vec4_generator.cpp index d85e3c43241..338c638aeb5 100644 --- a/src/intel/compiler/brw_vec4_generator.cpp +++ b/src/intel/compiler/brw_vec4_generator.cpp @@ -24,6 +24,7 @@ #include "brw_cfg.h" #include "brw_eu.h" #include "dev/gen_debug.h" +#include "util/mesa-sha1.h" using namespace brw; @@ -2174,17 +2175,29 @@ generate_code(struct brw_codegen *p, int after_size = p->next_insn_offset; if (unlikely(debug_flag)) { - fprintf(stderr, "Native code for %s %s shader %s:\n", - nir->info.label ? nir->info.label : "unnamed", - _mesa_shader_stage_to_string(nir->info.stage), nir->info.name); + unsigned char sha1[21]; + char sha1buf[41]; - fprintf(stderr, "%s vec4 shader: %d instructions. %d loops. %u cycles. %d:%d " - "spills:fills. Compacted %d to %d bytes (%.0f%%)\n", - stage_abbrev, before_size / 16, loop_count, cfg->cycle_count, - spill_count, fill_count, before_size, after_size, - 100.0f * (before_size - after_size) / before_size); + _mesa_sha1_compute(p->store, p->next_insn_offset, sha1); + _mesa_sha1_format(sha1buf, sha1); + + fprintf(stderr, "Native code for %s %s shader %s (sha1 %s):\n", + nir->info.label ? nir->info.label : "unnamed", + _mesa_shader_stage_to_string(nir->info.stage), nir->info.name, + sha1buf); - dump_assembly(p->store, disasm_info); + fprintf(stderr, "%s vec4 shader: %d instructions. %d loops. %u cycles. %d:%d " + "spills:fills. Compacted %d to %d bytes (%.0f%%)\n", + stage_abbrev, before_size / 16, loop_count, cfg->cycle_count, + spill_count, fill_count, before_size, after_size, + 100.0f * (before_size - after_size) / before_size); + + /* overriding the shader makes disasm_info invalid */ + if (!brw_try_override_assembly(p, 0, sha1buf)) { + dump_assembly(p->store, disasm_info); + } else { + fprintf(stderr, "Successfully overrode shader with sha1 %s\n\n", sha1buf); + } } ralloc_free(disasm_info); assert(validated); |