i915g: Fix undefined results for TGSI_OPCODE_KILL

The swizzle() requires a proper ureg with the 0/1 swizzle fields filled
in, or our ONE swizzles end up reading .x instead.  This meant that we
were killing based on the incoming value of R0.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10874>
This commit is contained in:
Emma Anholt 2021-05-18 12:27:34 -07:00 committed by Marge Bot
parent fc3d5bebf2
commit d8a1d41952
3 changed files with 1 additions and 3 deletions

View file

@ -1,2 +1 @@
dEQP-GLES2.functional.shaders.discard.function_always
dEQP-GLES2.functional.shaders.random.texture.*

View file

@ -1 +0,0 @@
spec@glsl-1.10@execution@discard@glsl-fs-discard-03

View file

@ -646,7 +646,7 @@ i915_translate_instruction(struct i915_fp_compile *p,
tmp, /* dest reg: a dummy reg */
A0_DEST_CHANNEL_ALL, /* dest writemask */
0, /* sampler */
negate(swizzle(0, ONE, ONE, ONE, ONE), 1, 1, 1, 1), /* coord */
negate(swizzle(UREG(REG_TYPE_R, 0), ONE, ONE, ONE, ONE), 1, 1, 1, 1), /* coord */
T0_TEXKILL, /* opcode */
1); /* num_coord */
break;