nir/lower_flrp: Check and set shader_info::flrp_lowered

No shader-db or fossil-db changes on any Intel platform.

v2: Return early if lowering_mask is zero. If the first call to
nir_lower_flrp has a lowering_mask of zero, later calls with non-zero
masks would not do any lowering. lp_bld_nir.c has this issue.

Suggested-by: Alyssa
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12526>
This commit is contained in:
Ian Romanick 2025-11-26 11:48:58 -08:00 committed by Marge Bot
parent 341e2d3283
commit 4bbc29373a

View file

@ -599,6 +599,9 @@ nir_lower_flrp(nir_shader *shader,
unsigned lowering_mask, unsigned lowering_mask,
bool always_precise) bool always_precise)
{ {
if (shader->info.flrp_lowered || lowering_mask == 0)
return false;
struct u_vector dead_flrp; struct u_vector dead_flrp;
if (!u_vector_init_pow2(&dead_flrp, 8, sizeof(struct nir_alu_instr *))) 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); u_vector_finish(&dead_flrp);
shader->info.flrp_lowered = true;
return progress; return progress;
} }