i915g: Make the FS for compile failures write red instead of DIFFUSE.

The DIFFUSE thing would write an undefined result if the shader that
failed to compile didn't read VARYING_SLOT_COL0, causing flakes in CI.
This does make 2 piglit tests that were expecting red spuriously pass.

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 13:56:50 -07:00 committed by Marge Bot
parent adc505dd2d
commit 5d57f6080c
3 changed files with 7 additions and 21 deletions

View file

@ -1,8 +1,2 @@
dEQP-GLES2.functional.shaders.discard.function_always
dEQP-GLES2.functional.shaders.random.texture.*
# Some of these compile fail, which results in drawing undefined
# VARYING_SLOT_COL0 to the output, causing occasional passes in
# tests that normally fail.
dEQP-GLES2.functional.shaders.random.all_features.fragment.*
dEQP-GLES2.functional.uniform_api.random.*

View file

@ -720,8 +720,6 @@ spec@glsl-1.10@execution@loops@complex-loop-analysis-bug,Fail
spec@glsl-1.10@execution@loops@glsl-fs-continue-inside-do-while,Fail
spec@glsl-1.10@execution@loops@glsl-fs-loop-300,Fail
spec@glsl-1.10@execution@loops@glsl-fs-loop-break,Fail
spec@glsl-1.10@execution@loops@glsl-fs-loop-const-decr,Fail
spec@glsl-1.10@execution@loops@glsl-fs-loop-const-incr,Fail
spec@glsl-1.10@execution@loops@glsl-fs-loop-continue,Fail
spec@glsl-1.10@execution@loops@glsl-fs-loop-diagonal-break,Fail
spec@glsl-1.10@execution@loops@glsl-fs-loop-ge,Fail

View file

@ -52,16 +52,7 @@
*/
static unsigned passthrough_decl[] =
{
_3DSTATE_PIXEL_SHADER_PROGRAM | ((2*3)-1),
/* declare input color:
*/
(D0_DCL |
(REG_TYPE_T << D0_TYPE_SHIFT) |
(T_DIFFUSE << D0_NR_SHIFT) |
D0_CHANNEL_ALL),
0,
0,
_3DSTATE_PIXEL_SHADER_PROGRAM | ((1*3)-1),
};
static unsigned passthrough_program[] =
@ -71,9 +62,12 @@ static unsigned passthrough_program[] =
(A0_MOV |
(REG_TYPE_OC << A0_DEST_TYPE_SHIFT) |
A0_DEST_CHANNEL_ALL |
(REG_TYPE_T << A0_SRC0_TYPE_SHIFT) |
(T_DIFFUSE << A0_SRC0_NR_SHIFT)),
0x01230000, /* .xyzw */
(REG_TYPE_R << A0_SRC0_TYPE_SHIFT) |
(0 << A0_SRC0_NR_SHIFT)),
((SRC_ONE << A1_SRC0_CHANNEL_X_SHIFT) |
(SRC_ZERO << A1_SRC0_CHANNEL_Y_SHIFT) |
(SRC_ZERO << A1_SRC0_CHANNEL_Z_SHIFT) |
(SRC_ONE << A1_SRC0_CHANNEL_W_SHIFT)),
0
};