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:
@@ -1,2 +1 @@
|
||||
dEQP-GLES2.functional.shaders.discard.function_always
|
||||
dEQP-GLES2.functional.shaders.random.texture.*
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
spec@glsl-1.10@execution@discard@glsl-fs-discard-03
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user