[Mesa-dev] [PATCH 2/7] i965: Update JIP/UIP compaction code to operate on bytes.
Matt Turner
mattst88 at gmail.com
Mon Aug 18 11:19:48 PDT 2014
JIP/UIP were previously in units of compacted instructions. On Gen8
they're in units of bytes.
---
src/mesa/drivers/dri/i965/brw_eu_compact.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_eu_compact.c b/src/mesa/drivers/dri/i965/brw_eu_compact.c
index 25a96e7..f100297 100644
--- a/src/mesa/drivers/dri/i965/brw_eu_compact.c
+++ b/src/mesa/drivers/dri/i965/brw_eu_compact.c
@@ -653,17 +653,19 @@ static void
update_uip_jip(struct brw_context *brw, brw_inst *insn,
int this_old_ip, int *compacted_counts)
{
- int jip = brw_inst_jip(brw, insn);
+ int scale = brw->gen >= 8 ? sizeof(brw_compact_inst) : 1;
+
+ int32_t jip = brw_inst_jip(brw, insn) / scale;
jip -= compacted_between(this_old_ip, this_old_ip + jip, compacted_counts);
- brw_inst_set_jip(brw, insn, jip);
+ brw_inst_set_jip(brw, insn, jip * scale);
if (brw_inst_opcode(brw, insn) == BRW_OPCODE_ENDIF ||
brw_inst_opcode(brw, insn) == BRW_OPCODE_WHILE)
return;
- int uip = brw_inst_uip(brw, insn);
+ int32_t uip = brw_inst_uip(brw, insn) / scale;
uip -= compacted_between(this_old_ip, this_old_ip + uip, compacted_counts);
- brw_inst_set_uip(brw, insn, uip);
+ brw_inst_set_uip(brw, insn, uip * scale);
}
void
--
1.8.5.5
More information about the mesa-dev
mailing list