mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 20:28:04 +02:00
pan/bi: Run nir_lower_all_phis_to_scalar() late
We were running this in the preprocess step and then trusting that it would clean up everything before we got to the back-end. However, we were running the entire optimization loop in between as well as drivers potentially adding stuff (since panvk has it's own passes after postprocess). Instead, this should be one of the last things run, right before we go into the back-end. Cc: mesa-stable Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com> Acked-by: Eric R. Smith <eric.smith@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38821>
This commit is contained in:
parent
5f22dfa2e1
commit
2bd282a968
1 changed files with 11 additions and 1 deletions
|
|
@ -6364,7 +6364,6 @@ bifrost_postprocess_nir(nir_shader *nir, unsigned gpu_id)
|
|||
|
||||
NIR_PASS(_, nir, nir_lower_alu_width, bi_vectorize_filter, &gpu_id);
|
||||
NIR_PASS(_, nir, nir_lower_load_const_to_scalar);
|
||||
NIR_PASS(_, nir, nir_lower_phis_to_scalar, bi_vectorize_filter, &gpu_id);
|
||||
NIR_PASS(_, nir, nir_lower_flrp, 16 | 32 | 64, false /* always_precise */);
|
||||
NIR_PASS(_, nir, nir_lower_var_copies);
|
||||
NIR_PASS(_, nir, nir_lower_alu);
|
||||
|
|
@ -6984,6 +6983,17 @@ bifrost_compile_shader_nir(nir_shader *nir,
|
|||
|
||||
bi_optimize_nir(nir, inputs->gpu_id, inputs->robust2_modes);
|
||||
|
||||
{
|
||||
bool scalar_phis_pass = false;
|
||||
unsigned gpu_id = inputs->gpu_id;
|
||||
NIR_PASS(scalar_phis_pass, nir, nir_lower_phis_to_scalar,
|
||||
bi_vectorize_filter, &gpu_id);
|
||||
if (scalar_phis_pass) {
|
||||
NIR_PASS(_, nir, nir_opt_copy_prop);
|
||||
NIR_PASS(_, nir, nir_opt_dce);
|
||||
}
|
||||
}
|
||||
|
||||
info->tls_size = nir->scratch_size;
|
||||
|
||||
pan_nir_collect_varyings(nir, info, PAN_MEDIUMP_VARY_32BIT);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue