diff options
author | Jason Ekstrand <[email protected]> | 2015-04-15 15:01:25 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2015-04-22 16:00:33 -0700 |
commit | 9c89e47806ee0437a2617eb4b90a0b953869fea2 (patch) | |
tree | 1741cbacf3bd5d432b564545df0e9b5bc708efb7 | |
parent | 5cb91db619e8689c8fd45a67b57b96fc36f4ca9b (diff) |
i965: Make the annotation code take a device_info instead of a context
Reviewed-by: Matt Turner <[email protected]>
4 files changed, 14 insertions, 10 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index 539619a68b8..baa83a15e1c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1573,7 +1573,7 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width) bool multiple_instructions_emitted = false; if (unlikely(debug_flag)) - annotate(brw, &annotation, cfg, inst, p->next_insn_offset); + annotate(p->devinfo, &annotation, cfg, inst, p->next_insn_offset); for (unsigned int i = 0; i < inst->sources; i++) { src[i] = brw_reg_from_fs_reg(&inst->src[i]); @@ -2128,7 +2128,8 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width) spill_count, fill_count, promoted_constants, before_size, after_size, 100.0f * (before_size - after_size) / before_size); - dump_assembly(p->store, annotation.ann_count, annotation.ann, brw, prog); + dump_assembly(p->store, annotation.ann_count, annotation.ann, + p->devinfo, prog); ralloc_free(annotation.ann); } diff --git a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp index 94ab32d67d5..6e3a6a53aed 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp @@ -1151,7 +1151,7 @@ vec4_generator::generate_code(const cfg_t *cfg) struct brw_reg src[3], dst; if (unlikely(debug_flag)) - annotate(brw, &annotation, cfg, inst, p->next_insn_offset); + annotate(p->devinfo, &annotation, cfg, inst, p->next_insn_offset); for (unsigned int i = 0; i < 3; i++) { src[i] = inst->get_src(this->prog_data, i); @@ -1618,7 +1618,8 @@ vec4_generator::generate_code(const cfg_t *cfg) before_size / 16, loop_count, before_size, after_size, 100.0f * (before_size - after_size) / before_size); - dump_assembly(p->store, annotation.ann_count, annotation.ann, brw, prog); + dump_assembly(p->store, annotation.ann_count, annotation.ann, + p->devinfo, prog); ralloc_free(annotation.ann); } diff --git a/src/mesa/drivers/dri/i965/intel_asm_annotation.c b/src/mesa/drivers/dri/i965/intel_asm_annotation.c index b4a693f7b5f..bb8bb8d38c9 100644 --- a/src/mesa/drivers/dri/i965/intel_asm_annotation.c +++ b/src/mesa/drivers/dri/i965/intel_asm_annotation.c @@ -33,7 +33,8 @@ void dump_assembly(void *assembly, int num_annotations, struct annotation *annotation, - struct brw_context *brw, const struct gl_program *prog) + const struct brw_device_info *devinfo, + const struct gl_program *prog) { const char *last_annotation_string = NULL; const void *last_annotation_ir = NULL; @@ -79,7 +80,7 @@ dump_assembly(void *assembly, int num_annotations, struct annotation *annotation fprintf(stderr, " %s\n", last_annotation_string); } - brw_disassemble(brw->intelScreen->devinfo, assembly, start_offset, end_offset, stderr); + brw_disassemble(devinfo, assembly, start_offset, end_offset, stderr); if (annotation[i].block_end) { fprintf(stderr, " END B%d", annotation[i].block_end->num); @@ -94,7 +95,7 @@ dump_assembly(void *assembly, int num_annotations, struct annotation *annotation fprintf(stderr, "\n"); } -void annotate(struct brw_context *brw, +void annotate(const struct brw_device_info *devinfo, struct annotation_info *annotation, const struct cfg_t *cfg, struct backend_instruction *inst, unsigned offset) { @@ -129,7 +130,7 @@ void annotate(struct brw_context *brw, * There's also only complication from emitting an annotation without * a corresponding hardware instruction to disassemble. */ - if (brw->gen >= 6 && inst->opcode == BRW_OPCODE_DO) { + if (devinfo->gen >= 6 && inst->opcode == BRW_OPCODE_DO) { annotation->ann_count--; } diff --git a/src/mesa/drivers/dri/i965/intel_asm_annotation.h b/src/mesa/drivers/dri/i965/intel_asm_annotation.h index d80f3205281..d9c69bc41b0 100644 --- a/src/mesa/drivers/dri/i965/intel_asm_annotation.h +++ b/src/mesa/drivers/dri/i965/intel_asm_annotation.h @@ -60,10 +60,11 @@ struct annotation_info { void dump_assembly(void *assembly, int num_annotations, struct annotation *annotation, - struct brw_context *brw, const struct gl_program *prog); + const struct brw_device_info *devinfo, + const struct gl_program *prog); void -annotate(struct brw_context *brw, +annotate(const struct brw_device_info *devinfo, struct annotation_info *annotation, const struct cfg_t *cfg, struct backend_instruction *inst, unsigned offset); void |