From a167cb9ba32981ff6cd1e9518adc3d0bb89376fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Sat, 30 Mar 2024 23:14:43 +0100 Subject: [PATCH] ac/nir/tess: Return undef when loading an unwritten TCS output. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Timur Kristóf Reviewed-by: Marek Olšák Part-of: --- src/amd/common/ac_nir_lower_tess_io_to_mem.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/amd/common/ac_nir_lower_tess_io_to_mem.c b/src/amd/common/ac_nir_lower_tess_io_to_mem.c index 1f7e7548c59..93f05a1dce2 100644 --- a/src/amd/common/ac_nir_lower_tess_io_to_mem.c +++ b/src/amd/common/ac_nir_lower_tess_io_to_mem.c @@ -544,6 +544,10 @@ lower_hs_output_load(nir_builder *b, return nir_extract_bits(b, &var, 1, component * bit_size, num_components, bit_size); } + /* If an output is not stored by the shader, replace the output load by undef. */ + if (!tcs_output_needs_lds(intrin, b->shader, st)) + return nir_undef(b, intrin->def.num_components, intrin->def.bit_size); + nir_def *off = hs_output_lds_offset(b, st, intrin); return nir_load_shared(b, intrin->def.num_components, intrin->def.bit_size, off); }