pco: spilling enablement - track barrier usage

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
Simon Perretta 2025-06-30 13:54:04 +01:00 committed by Marge Bot
parent 117e7222cb
commit fd4204b37b
3 changed files with 8 additions and 3 deletions

View file

@ -1693,7 +1693,9 @@ bool pco_nir_lower_algebraic(nir_shader *shader);
bool pco_nir_lower_algebraic_late(nir_shader *shader);
bool pco_nir_lower_alpha_to_coverage(nir_shader *shader);
bool pco_nir_lower_atomics(nir_shader *shader, bool *uses_usclib);
bool pco_nir_lower_barriers(nir_shader *shader, bool *uses_usclib);
bool pco_nir_lower_barriers(nir_shader *shader,
pco_data *data,
bool *uses_usclib);
bool pco_nir_lower_clip_cull_vars(nir_shader *shader);
bool pco_nir_lower_fs_intrinsics(nir_shader *shader);
bool pco_nir_lower_images(nir_shader *shader, pco_data *data);

View file

@ -722,7 +722,7 @@ void pco_lower_nir(pco_ctx *ctx, nir_shader *nir, pco_data *data)
NIR_PASS(_, nir, nir_opt_barrier_modes);
NIR_PASS(_, nir, nir_opt_combine_barriers, NULL, NULL);
NIR_PASS(_, nir, pco_nir_lower_barriers, &uses_usclib);
NIR_PASS(_, nir, pco_nir_lower_barriers, data, &uses_usclib);
NIR_PASS(_, nir, nir_lower_memory_model);

View file

@ -82,7 +82,9 @@ static bool is_barrier(const nir_instr *instr, UNUSED const void *cb_data)
* \param[in,out] shader NIR shader.
* \return True if the pass made progress.
*/
bool pco_nir_lower_barriers(nir_shader *shader, bool *uses_usclib)
bool pco_nir_lower_barriers(nir_shader *shader,
pco_data *data,
bool *uses_usclib)
{
bool barrier_emitted = false;
bool progress = nir_shader_lower_instructions(shader,
@ -91,6 +93,7 @@ bool pco_nir_lower_barriers(nir_shader *shader, bool *uses_usclib)
&barrier_emitted);
*uses_usclib |= barrier_emitted;
data->common.uses.barriers |= progress;
return progress;
}