<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - [BSW]ES3-CTS.shaders.loops.do_while_dynamic_iterations.vector_counter_vertex fails and causes GPU hang"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=84212#c12">Comment # 12</a>
              on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - [BSW]ES3-CTS.shaders.loops.do_while_dynamic_iterations.vector_counter_vertex fails and causes GPU hang"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=84212">bug 84212</a>
              from <span class="vcard"><a class="email" href="mailto:ben@bwidawsk.net" title="Ben Widawsky <ben@bwidawsk.net>"> <span class="fn">Ben Widawsky</span></a>
</span></b>
        <pre>Apparently my push didn't actually work, and my machine at work has locked up. 

Looking at the docs closer, I don't believe what I did is correct anyway. I
think the docs are telling me that you cannot program 3 as opposed to, you must
program 3. We do not have a check for this, but we're not programming 3 in the
failing case. Let's at least make sure this makes the test pass on your system
(it does on mine). Then I'll come up with some more experiments.

Here is the patch from memory:
diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c
b/src/mesa/drivers/dri/i965/brw_eu_emit.c
index c475393..d3b1b32 100644
--- a/src/mesa/drivers/dri/i965/brw_eu_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c
@@ -517,6 +517,7 @@ brw_set_src1(struct brw_compile *p, brw_inst *inst, struct
brw_reg reg)
         else
             brw_inst_set_src1_vstride(brw, inst, reg.vstride);
       }
+      brw_inst_set_src1_reg_type(brw, inst, 0x3);
    }
 }</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>