draw: fix clipvertex trouble if position comes from gs
authorRoland Scheidegger <sroland@vmware.com>
Wed, 6 Aug 2014 01:40:31 +0000 (03:40 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Wed, 6 Aug 2014 16:01:33 +0000 (18:01 +0200)
commit6e9005e8b0e72e7a29cd9700d3bcb2459922c01e
treea563d46fd4680c2bee8d8dcdb3c7e7bfb873b885
parent11bd6f0e9b348b67f73f39dfd2b8b6b9a8452bc4
draw: fix clipvertex trouble if position comes from gs

If the vertex shader has no position but the gs has, the clipvertex output
was -1 (because it's the same as vs position in this case if there's no
explicit clipvertex output). This caused crashes (or assertion failures) in
clipping since in the end position (which came from gs) was different from
cv (-1) and we then tried to use the bogus cv input.
Rather than just test for -1 cv value in clipping, make it explicitly return
the position output of the gs instead which seems cleaner (since we really
don't want to use the clipvertex value from the vs (it could be a valid value
in the (unsupported) case of vs writing clipvertex but still using a gs).
This fixes piglit shader_runner clip-distance-out-values.shader_test.

Reviewed-by: Zack Rusin <zackr@vmware.com>
src/gallium/auxiliary/draw/draw_context.c