i965/skl: Fix SBE state upload code.
authorBen Widawsky <benjamin.widawsky@intel.com>
Sat, 22 Nov 2014 23:22:15 +0000 (15:22 -0800)
committerBen Widawsky <benjamin.widawsky@intel.com>
Wed, 3 Dec 2014 06:11:09 +0000 (22:11 -0800)
commitc914247dcb7c44c25efc335413da2d9d83fe550f
treec34e9acc944e61bf827af349ca3fa0045330baac
parent02cc9e9f9e48795371298dcf25a9de6215138880
i965/skl: Fix SBE state upload code.

The state upload code was incorrectly shifting the attribute swizzles. The
effect of this is we're likely to get the default swizzle values, which disables
the component.

This doesn't technically fix any bugs since Skylake support is still disabled by
default (no PCI IDs).

While here, since VARYING_SLOT_MAX can be greater than the number of attributes
we have available, add a warning to the code to make sure we never do the wrong
thing (and hopefully prevent further static analysis from finding this).
Admittedly I am a bit confused. It seems to me like the moment a user has
greater than 8 varyings we will hit this condition. CC Ken to clarify.

v2: Forgot to git add the warning message in v1

v3: Change the > 31 varyings to an assertion (Ken)

Reported-by: Ilia Mirkin <imirkin@alum.mit.edu> (via Coverity)
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/gen8_sf_state.c