On 4 October 2011 14:49, Brian Paul <span dir="ltr">&lt;<a href="mailto:brianp@vmware.com">brianp@vmware.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 10/04/2011 03:19 PM, Paul Berry wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
On 4 October 2011 13:15, Ian Romanick &lt;<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a><br></div><div><div></div><div class="h5">
&lt;mailto:<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>&gt;&gt; wrote:<br>
<br>
    On 10/03/2011 02:17 PM, Paul Berry wrote:<br>
<br>
        Before this patch, clip planes didn&#39;t work properly in Mesa<br>
        when using<br>
        vertex shaders, because Mesa assigned both gl_ClipVertex and<br>
        gl_Position to the same gl_vert_result (VERT_RESULT_HPOS).  As a<br>
        result, backends couldn&#39;t distinguish between the two<br>
        variables, so<br>
        any shader that wrote different values to them would fail to work<br>
        properly.<br>
<br>
        This patch paves the way for proper support of gl_ClipVertex by<br>
        creating a new enumerated value in gl_vert_result for it<br>
        (VERT_RESULT_CLIP_VERTEX).  After this patch, a back-end may add<br>
<br>
<br>
    What happens in drivers that aren&#39;t expecting / don&#39;t know about<br>
    VERT_RESULT_CLIP_VERTEX?  In other words, does this break (more)<br>
    i915 and all Gallium drivers?  I understand that gl_ClipVertex<br>
    already doesn&#39;t work anywhere, but it would be a shame to replace<br>
    incorrect rendering with a crash.<br>
<br>
    I can test out (and patch up) i915 today, but I&#39;d like some<br>
    feedback from people that rely on TGSI.<br>
<br>
<br>
Dang, I should have thought of this.<br>
<br>
BTW, an easy way to assess the effect of this patch on a driver would<br>
be to run Piglit with &quot;-t clip&quot; after applying this patch.  The patch<br>
should only regress &quot;vs-clip-vertex-const-reject&quot; (which only used to<br>
pass by dumb luck), and nothing should crash or abort.  Also, if<br>
&quot;clip-plane-transformation fixed&quot; passes, we can have pretty high<br>
confidence that old fashioned fixed function clipping still works.<br>
<br>
I just did this test on Gallium&#39;s LLVM pipe and on vanilla swrast, and<br>
everything looked ok--no regressions other than<br>
vs-clip-vertex-const-reject.  BTW, both gallium LLVM pipe and vanilla<br>
swrast have a crash (in &quot;vs-clip-vertex-enables&quot; and<br>
&quot;clip-plane-transformation arb&quot;, respectively), but in both cases the<br>
crash seems to be unrelated to this patch.<br>
</div></div></blockquote>
<br>
Can you show me the command lines to run these?  I can&#39;t find vs-clip-vertex-enables</blockquote><div><br>Oh yeah, some of those tests haven&#39;t landed yet--they&#39;re in a 3-patch series I sent to the Piglit list yesterday afternoon.  If one of you wants to give me a &quot;Reviewed-by&quot; on the Piglit list I&#39;ll commit them to master.  In the meantime you can get them from branch &quot;clip-plane-transformation&quot; on git://<a href="http://github.com/stereotype441/piglit.git">github.com/stereotype441/piglit.git</a>.<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im"><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Unfortunately I don&#39;t have the hardware to test anything else so I&#39;d<br>
appreciate feedback from others.<br>
<br>
If worse comes to worst and we do wind up regressing a driver, I<br>
suppose a workaround would be to add a flag to<br>
gl_shader_compiler_options so that the driver can tell the GLSL<br>
compiler either &quot;I understand VERT_RESULT_CLIP_VERTEX&quot; or &quot;I don&#39;t,<br>
just do the old buggy behavior&quot;.  But it seems ugly so I would rather<br>
avoid that sort of thing if we can.<br>
</blockquote>
<br></div>
Gallium doesn&#39;t support clip distances yet so we might have to work on that.  If you&#39;ve tested llvmpipe and it looks OK, that&#39;s enough for me at this point.<br><font color="#888888">
<br>
-Brian<br>
</font></blockquote></div><br>