draw: fix clipping of layer/vp index outputs
authorRoland Scheidegger <sroland@vmware.com>
Fri, 4 Dec 2015 02:42:02 +0000 (03:42 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Fri, 4 Dec 2015 02:42:19 +0000 (03:42 +0100)
commit51140f452a8623c9b912126b027f0f1819e72531
tree39a159023bb6416aedb2e50c4df6dc5383c611e0
parent5ea5b169e95358ec47615f43941e6949d4a7ad43
draw: fix clipping of layer/vp index outputs

This was just plain broken. It used always the value from v0 (for vp_index)
but would pass the value from the provoking vertex to later stages - but only
if there was a corresponding fs input, otherwise the layer/vp index would get
lost completely (as it would try to interpolate the (unsigned) values as
floats).
So, make it obey provoking vertex rules (drivers relying on draw will need to
do the same). And make sure that the default interpolation mode (when no
corresponding fs input is found) for them is constant.
Also, change the code a bit so constant inputs aren't interpolated then
copied over later.

Fixes the new piglit test gl-layer-render-clipped.

v2: more consistent whitespaces fixes for function defs, and more tab killing
(overall still not quite right however).

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/draw/draw_pipe_clip.c