Module: Mesa Branch: main Commit: a89755d179254d1c9be3f935f44ba5efece90cc1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a89755d179254d1c9be3f935f44ba5efece90cc1
Author: Rhys Perry <[email protected]> Date: Mon Nov 7 14:28:51 2022 +0000 radv: fix task payload lowering when shared_memory_explicit_layout=true If shared_memory_explicit_layout=true, we would have skipped lowering task payload variables to explicit types. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Timur Kristóf <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19597> --- src/amd/vulkan/radv_shader.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 598279abc0b..7a1e0e69d0a 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -1077,9 +1077,11 @@ radv_shader_spirv_to_nir(struct radv_device *device, const struct radv_pipeline_ nir->info.stage == MESA_SHADER_MESH) var_modes |= nir_var_mem_task_payload; - if (!nir->info.shared_memory_explicit_layout) { + if (!nir->info.shared_memory_explicit_layout) NIR_PASS(_, nir, nir_lower_vars_to_explicit_types, var_modes, shared_var_info); - } + else if (var_modes & ~nir_var_mem_shared) + NIR_PASS(_, nir, nir_lower_vars_to_explicit_types, var_modes & ~nir_var_mem_shared, + shared_var_info); NIR_PASS(_, nir, nir_lower_explicit_io, var_modes, nir_address_format_32bit_offset); if (nir->info.zero_initialize_shared_memory && nir->info.shared_size > 0) {
