From a20c693b7f4e7e0b26aa9db10cafc87ff4620bf7 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 1 Jan 2024 09:16:35 -0400 Subject: [PATCH] agx: fix xfb of invalid var KHR-Single-GL44.enhanced_layouts.xfb_capture_struct Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/lib/agx_nir_lower_gs.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/asahi/lib/agx_nir_lower_gs.c b/src/asahi/lib/agx_nir_lower_gs.c index c9c2aeb2577..f2943884333 100644 --- a/src/asahi/lib/agx_nir_lower_gs.c +++ b/src/asahi/lib/agx_nir_lower_gs.c @@ -641,9 +641,13 @@ write_xfb(nir_builder *b, struct lower_gs_state *state, unsigned stream, /* We write out the vertices backwards, since 0 is the current * emitted vertex (which is actually the last vertex). + * + * We handle NULL var for + * KHR-Single-GL44.enhanced_layouts.xfb_capture_struct. */ unsigned v = (verts - 1) - vert; - nir_def *value = nir_load_var(b, state->outputs[output.location][v]); + nir_variable *var = state->outputs[output.location][v]; + nir_def *value = var ? nir_load_var(b, var) : nir_undef(b, 4, 32); /* In case output.component_mask contains invalid components, write * out zeroes instead of blowing up validation.