diff --git a/.pick_status.json b/.pick_status.json index 0cf790d2eb8..c8531ac6e05 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2524,7 +2524,7 @@ "description": "radeonsi: recompute FS output IO bases to prevent an LLVM crash", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "7a506d0a4145dd74a48affa1b08bfefd53d94a04", "notes": null diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c index 9a11c159356..56747b96215 100644 --- a/src/gallium/drivers/radeonsi/si_shader_nir.c +++ b/src/gallium/drivers/radeonsi/si_shader_nir.c @@ -390,8 +390,10 @@ char *si_finalize_nir(struct pipe_screen *screen, struct nir_shader *nir) NIR_PASS(_, nir, nir_remove_dead_variables, nir_var_shader_in | nir_var_shader_out, NULL); } - if (nir->info.stage == MESA_SHADER_FRAGMENT) + if (nir->info.stage == MESA_SHADER_FRAGMENT) { NIR_PASS(_, nir, si_nir_lower_color_inputs_to_sysvals); + NIR_PASS(_, nir, nir_recompute_io_bases, nir_var_shader_out); + } NIR_PASS(_, nir, nir_lower_explicit_io, nir_var_mem_shared, nir_address_format_32bit_offset);