Hi Tom,<br><br>we use OUT_CS_REG_SEQ for updating registers which are next to each other. It saves CS space.<br><br>BEGIN_CS(6);<br>OUT_CS_REG(reg, a1);<br>OUT_CS_REG(reg + 4, a2);<br>OUT_CS_REG(reg + 8, a3);<br>END_CS;<br>

<br>can be rewritten to<br><br>BEGIN_CS(4);<br>OUT_CS_REQ_SEQ(reg, 3); // auto-increment reg on a register write.<br>OUT_CS(a1);<br>OUT_CS(a2);<br>OUT_CS(a3);<br>END_CS;<br><br>And you can replace a few OUT_CS with OUT_CS_TABLE. Your fc_op_addrs is nicely packed (alternating LW and UW exactly like the registers), so you can write:<br>

<br>OUT_CS_REG_SEQ(R500_VAP_PVS_FLOW_CNTL_ADDRS_LW_0, code-&gt;num_fc_ops * 2);<br>OUT_CS_TABLE(code-&gt;fc_op_addrs, code-&gt;num_fc_ops * 2);<br>OUT_CS_REG_SEQ(R300_VAP_PVS_FLOW_CNTL_LOOP_INDEX_0, code-&gt;num_fc_ops);<br>

OUT_CS_TABLE(code-&gt;fc_loop_index, code-&gt;num_fc_ops);<br><br>Otherwise r300g changes look good to me.<br><br>-Marek<br><br><div class="gmail_quote">On Sat, Aug 7, 2010 at 4:36 AM, Tom Stellard <span dir="ltr">&lt;<a href="mailto:tstellar@gmail.com">tstellar@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi,<br>
<br>
The two attached patches enable the hardware loop capabilities for<br>
vertex shaders.  I haven&#39;t tested on an r300 card yet, but glsl-vs-loop<br>
from piglit passes on my r500 card.  Nested loops don&#39;t work yet, I<br>
think it is an issue with the branch emulation, but I&#39;m not sure.<br>
<br>
It would be helpful if someone could review the changes I made<br>
especially to r300_emit.c, r300_state.c, and both r300_reg.h files to<br>
make sure I&#39;m doing things the right way.<br>
<br>
Thanks.<br>
<font color="#888888"><br>
-Tom<br>
</font><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>
<br></blockquote></div><br>