<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 28, 2014 at 8:10 PM, Matt Turner <span dir="ltr"><<a href="mailto:mattst88@gmail.com" target="_blank">mattst88@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">---<br>
src/mesa/drivers/dri/i965/brw_eu_compact.c | 17 +++++++----------<br>
1 file changed, 7 insertions(+), 10 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/brw_eu_compact.c b/src/mesa/drivers/dri/i965/brw_eu_compact.c<br>
index 5617947..dd32175 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_eu_compact.c<br>
+++ b/src/mesa/drivers/dri/i965/brw_eu_compact.c<br>
@@ -737,6 +737,8 @@ brw_try_compact_instruction(struct brw_context *brw, brw_compact_inst *dst,<br>
{<br>
brw_compact_inst temp;<br>
<br>
+ assert(brw_inst_cmpt_control(brw, src) == 0);<br>
+<br>
if (brw_inst_opcode(brw, src) == BRW_OPCODE_IF ||<br>
brw_inst_opcode(brw, src) == BRW_OPCODE_ELSE ||<br>
brw_inst_opcode(brw, src) == BRW_OPCODE_ENDIF ||<br>
@@ -1105,10 +1107,10 @@ brw_compact_instructions(struct brw_compile *p, int start_offset,<br>
if (brw->gen < 6)<br>
return;<br>
<br>
- int src_offset;<br>
int offset = 0;<br>
int compacted_count = 0;<br>
- for (src_offset = 0; src_offset < p->next_insn_offset - start_offset;) {<br>
+ for (int src_offset = 0; src_offset < p->next_insn_offset - start_offset;<br>
+ src_offset += sizeof(brw_inst)) {<br>
brw_inst *src = store + src_offset;<br>
void *dst = store + offset;<br>
<br>
@@ -1117,8 +1119,7 @@ brw_compact_instructions(struct brw_compile *p, int start_offset,<br>
<br>
brw_inst saved = *src;<br>
<br>
- if (!brw_inst_cmpt_control(brw, src) &&<br>
- brw_try_compact_instruction(brw, dst, src)) {<br>
+ if (brw_try_compact_instruction(brw, dst, src)) {<br></blockquote><div><br></div><div>You're now ignoring the compaction control bit. Is that intentional? If so, then this looks ok, but it is a functional change and the commit message should say more than rescoping a variable.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
compacted_count++;<br>
<br>
if (INTEL_DEBUG) {<br>
@@ -1130,10 +1131,7 @@ brw_compact_instructions(struct brw_compile *p, int start_offset,<br>
}<br>
<br>
offset += 8;<br>
- src_offset += 16;<br>
} else {<br>
- int size = brw_inst_cmpt_control(brw, src) ? 8 : 16;<br>
-<br>
/* It appears that the end of thread SEND instruction needs to be<br>
* aligned, or the GPU hangs.<br>
*/<br>
@@ -1154,10 +1152,9 @@ brw_compact_instructions(struct brw_compile *p, int start_offset,<br>
* place.<br>
*/<br>
if (offset != src_offset) {<br>
- memmove(dst, src, size);<br>
+ memmove(dst, src, sizeof(brw_inst));<br>
}<br>
- offset += size;<br>
- src_offset += size;<br>
+ offset += sizeof(brw_inst);<br>
}<br>
}<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
1.8.5.5<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div>