freedreno/ir3: fix load_front_face conversion
authorIlia Mirkin <imirkin@alum.mit.edu>
Wed, 12 Jul 2017 01:44:12 +0000 (21:44 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Wed, 12 Jul 2017 23:30:46 +0000 (19:30 -0400)
commit87028f863967ec88ef8b7c5722f6cbf7ac6c8db6
treeee1e90a45b36b0343983bb11b3d6fe6cc283cd2a
parent0e1886efb9e151c8ffd5cb89f54c966a54a4fe74
freedreno/ir3: fix load_front_face conversion

The comments are correct - we get -1 and 0. However by adding 1, we
convert this into 0,1. This mostly works for conditionals, but when
negated, this will yield the wrong result. Instead just negate the
values (as they are backwards -- -1 means back instead of front).

Fixes tests/shaders/glsl-fs-frontfacing-not.shader_test and
dEQP-GLES3.functional.shaders.builtin_variable.frontfacing on A530.

The latter also tested on A306 by Rob Clark.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c