diff --git a/src/compiler/nir/nir_lower_flrp.c b/src/compiler/nir/nir_lower_flrp.c index ce270c4ea7b..c2f7892a371 100644 --- a/src/compiler/nir/nir_lower_flrp.c +++ b/src/compiler/nir/nir_lower_flrp.c @@ -599,6 +599,9 @@ nir_lower_flrp(nir_shader *shader, unsigned lowering_mask, bool always_precise) { + if (shader->info.flrp_lowered || lowering_mask == 0) + return false; + struct u_vector dead_flrp; if (!u_vector_init_pow2(&dead_flrp, 8, sizeof(struct nir_alu_instr *))) @@ -619,5 +622,7 @@ nir_lower_flrp(nir_shader *shader, u_vector_finish(&dead_flrp); + shader->info.flrp_lowered = true; + return progress; }