radeonsi: enable use_waterfall_for_divergent_tex_samplers

And run the nir_divergence_analysis pass in si_get_nir_shader to make
sure it's up to date.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2253
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16709>
This commit is contained in:
Pierre-Eric Pelloux-Prayer 2022-05-25 16:05:39 +02:00 committed by Marge Bot
parent 9776c1cff2
commit dad36b5f12
2 changed files with 3 additions and 0 deletions

View file

@ -1608,6 +1608,8 @@ struct nir_shader *si_get_nir_shader(struct si_shader_selector *sel,
if (progress || progress2)
si_nir_late_opts(nir);
NIR_PASS_V(nir, nir_divergence_analysis);
/* This helps LLVM form VMEM clauses and thus get more GPU cache hits.
* 200 is tuned for Viewperf. It should be done last.
*/

View file

@ -1063,6 +1063,7 @@ bool si_llvm_translate_nir(struct si_shader_context *ctx, struct si_shader *shad
ctx->abi.load_grid_size_from_user_sgpr = true;
ctx->abi.clamp_div_by_zero = ctx->screen->options.clamp_div_by_zero ||
info->options & SI_PROFILE_CLAMP_DIV_BY_ZERO;
ctx->abi.use_waterfall_for_divergent_tex_samplers = true;
for (unsigned i = 0; i < info->num_outputs; i++) {
LLVMTypeRef type = ctx->ac.f32;