From cda6877cb6bb473970e32f3b13f6e5483ada6bcb Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Tue, 5 Mar 2024 16:23:42 -0800 Subject: [PATCH] nir_lower_tex_shadow: For old-style shadows, use vec4(result, 0, 0, 1) If the app requests a swizzle on the shadow sampler which doesn't just return the red channel or literal 0s/1s, we'll crash attempting to build the result vector. Use something that's probably valid. Cc: mesa-stable Reviewed-by: Christian Gmeiner Part-of: --- src/compiler/nir/nir_lower_tex_shadow.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_lower_tex_shadow.c b/src/compiler/nir/nir_lower_tex_shadow.c index 882a5cc2003..ec077a60d97 100644 --- a/src/compiler/nir/nir_lower_tex_shadow.c +++ b/src/compiler/nir/nir_lower_tex_shadow.c @@ -115,7 +115,7 @@ nir_lower_tex_shadow_impl(nir_builder *b, nir_instr *instr, void *options) nir_def *one = nir_imm_float(b, 1.0); nir_def *zero = nir_imm_float(b, 0.0); - nir_def *lookup[6] = { result, NULL, NULL, NULL, zero, one }; + nir_def *lookup[6] = { result, zero, zero, one, zero, one }; nir_def *r[4] = { result, result, result, result }; if (sampler_binding < state->n_states) {