draw: fix clip test with NaNs
authorRoland Scheidegger <sroland@vmware.com>
Thu, 17 Dec 2015 16:54:12 +0000 (17:54 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Thu, 17 Dec 2015 23:57:07 +0000 (00:57 +0100)
commit6743c68a1190ffeedc0d124ca2dd9c22b3bc851c
treecf802524abe4cb58c0161e779c05751aecee8ca3
parent44e87b7b7b49669d10b6d60500885e51b42d05c3
draw: fix clip test with NaNs

NaNs mean it should be clipped, otherwise the NaNs might get passed to the
next stages (if clipping didn't happen for another reason already), which
might cause all kind of problems.
The llvm path got this right already (possibly by luck), but this isn't used
when there's a gs active.
Found by code inspection, verified with some hacked piglit test and some more
hacked debug output.
(Note the clipper can still itself incorrectly generate NaN and INF position
values in its output prims (at least after w divide / viewport transform) even
if the inputs weren't NaNs, if the position data of the vertices is
"sufficiently bad".)

Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/draw/draw_cliptest_tmp.h
src/gallium/auxiliary/draw/draw_llvm.c