Module: Mesa Branch: master Commit: e9dc3df868d97ad88360131bada45732eb8535e7 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9dc3df868d97ad88360131bada45732eb8535e7
Author: Rhys Perry <[email protected]> Date: Mon Apr 12 15:36:59 2021 +0100 nir/loop_unroll: fix is_indirect_load() with load_global load_global only has one source. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Fixes: dfe429eb414 ("nir/loop_unroll: unroll more aggressively if it can improve load scheduling") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10186> --- src/compiler/nir/nir_opt_loop_unroll.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/compiler/nir/nir_opt_loop_unroll.c b/src/compiler/nir/nir_opt_loop_unroll.c index b3ec353097c..c4c76742d79 100644 --- a/src/compiler/nir/nir_opt_loop_unroll.c +++ b/src/compiler/nir/nir_opt_loop_unroll.c @@ -757,12 +757,14 @@ is_indirect_load(nir_instr *instr) nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr); if ((intrin->intrinsic == nir_intrinsic_load_ubo || - intrin->intrinsic == nir_intrinsic_load_ssbo || - intrin->intrinsic == nir_intrinsic_load_global) && + intrin->intrinsic == nir_intrinsic_load_ssbo) && !nir_src_is_const(intrin->src[1])) { return true; } + if (intrin->intrinsic == nir_intrinsic_load_global) + return true; + if (intrin->intrinsic == nir_intrinsic_load_deref || intrin->intrinsic == nir_intrinsic_store_deref) { nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
