draw: handle more TGSI_SEMANTIC_COLOR indices
authorRoland Scheidegger <sroland@vmware.com>
Fri, 7 Jul 2017 22:14:35 +0000 (00:14 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Sat, 8 Jul 2017 04:02:18 +0000 (06:02 +0200)
commit4db72852a16fc4a2a559255f9965e1d02e4f2b9c
treec1870ee4f833acadd2288f2befe9f641e2ea87e9
parentf728435e1f872af3efcd6b9215e8d722d35090cc
draw: handle more TGSI_SEMANTIC_COLOR indices

It could only handle indices 0/1, otherwise what happened was bad (accessing
array out of bounds, no crash but kind of random). This is enough for the gl
state tracker (primary/secondary color) but not enough for some other state
trackers (d3d9 has no limits on the number of color interpolants).
The complexity with color semantics are all due to the front/back mapping (2
outputs in the vs map to one input in the fs) so this isn't extended to
indices > 1 - d3d9 has no use for back colors, therefore this isn't needed and
still only 2 back colors can be handled correctly.

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