<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>