i965/vs: Add annotation to more of the URB write.

While we had nice debug output for most of the instruction stream, it
was terminated by a series of anonymous MOVs and a send.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Eric Anholt 2011-09-06 13:29:21 -07:00
parent 48eb1fe6f9
commit 6af968b673
2 changed files with 5 additions and 1 deletions

View file

@ -361,6 +361,7 @@ public:
* for the ir->location's used. * for the ir->location's used.
*/ */
dst_reg output_reg[BRW_VERT_RESULT_MAX]; dst_reg output_reg[BRW_VERT_RESULT_MAX];
const char *output_reg_annotation[BRW_VERT_RESULT_MAX];
int uniform_size[MAX_UNIFORMS]; int uniform_size[MAX_UNIFORMS];
int uniform_vector_size[MAX_UNIFORMS]; int uniform_vector_size[MAX_UNIFORMS];
int uniforms; int uniforms;

View file

@ -800,6 +800,7 @@ vec4_visitor::visit(ir_variable *ir)
output_reg[ir->location + i] = *reg; output_reg[ir->location + i] = *reg;
output_reg[ir->location + i].reg_offset = i; output_reg[ir->location + i].reg_offset = i;
output_reg[ir->location + i].type = BRW_REGISTER_TYPE_F; output_reg[ir->location + i].type = BRW_REGISTER_TYPE_F;
output_reg_annotation[ir->location + i] = ir->name;
} }
break; break;
@ -1856,7 +1857,7 @@ vec4_visitor::emit_urb_slot(int mrf, int vert_result)
break; break;
default: { default: {
assert (vert_result < VERT_RESULT_MAX); assert (vert_result < VERT_RESULT_MAX);
current_annotation = NULL; current_annotation = output_reg_annotation[vert_result];
/* Copy the register, saturating if necessary */ /* Copy the register, saturating if necessary */
vec4_instruction *inst = emit(MOV(reg, vec4_instruction *inst = emit(MOV(reg,
src_reg(output_reg[vert_result]))); src_reg(output_reg[vert_result])));
@ -1947,6 +1948,7 @@ vec4_visitor::emit_urb_writes()
} }
} }
current_annotation = "URB write";
vec4_instruction *inst = emit(VS_OPCODE_URB_WRITE); vec4_instruction *inst = emit(VS_OPCODE_URB_WRITE);
inst->base_mrf = base_mrf; inst->base_mrf = base_mrf;
inst->mlen = align_interleaved_urb_mlen(brw, mrf - base_mrf); inst->mlen = align_interleaved_urb_mlen(brw, mrf - base_mrf);
@ -1962,6 +1964,7 @@ vec4_visitor::emit_urb_writes()
emit_urb_slot(mrf++, c->vue_map.slot_to_vert_result[slot]); emit_urb_slot(mrf++, c->vue_map.slot_to_vert_result[slot]);
} }
current_annotation = "URB write";
inst = emit(VS_OPCODE_URB_WRITE); inst = emit(VS_OPCODE_URB_WRITE);
inst->base_mrf = base_mrf; inst->base_mrf = base_mrf;
inst->mlen = align_interleaved_urb_mlen(brw, mrf - base_mrf); inst->mlen = align_interleaved_urb_mlen(brw, mrf - base_mrf);