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) {