From d77f5603a5de26e66561ec003118bbfb1a07666b Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Thu, 21 Aug 2014 23:02:49 -0700 Subject: [PATCH] i965: Fix JIP/UIP calculations. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82846 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82929 --- src/mesa/drivers/dri/i965/brw_eu_compact.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_eu_compact.c b/src/mesa/drivers/dri/i965/brw_eu_compact.c index 3680c55e292..4f509dde135 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_compact.c +++ b/src/mesa/drivers/dri/i965/brw_eu_compact.c @@ -1029,19 +1029,17 @@ update_uip_jip(struct brw_context *brw, brw_inst *insn, { int scale = brw->gen >= 8 ? sizeof(brw_compact_inst) : 1; - int32_t jip = brw_inst_jip(brw, insn); - jip -= scale * - compacted_between(this_old_ip, this_old_ip + jip, compacted_counts); - brw_inst_set_jip(brw, insn, jip); + 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 * scale); if (brw_inst_opcode(brw, insn) == BRW_OPCODE_ENDIF || brw_inst_opcode(brw, insn) == BRW_OPCODE_WHILE) return; - int32_t uip = brw_inst_uip(brw, insn); - uip -= scale * - compacted_between(this_old_ip, this_old_ip + uip, compacted_counts); - brw_inst_set_uip(brw, insn, uip); + 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 * scale); } void -- 2.30.2