From 3eeba6efdd6e48d34ea05bead0d482a8e255fb14 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 13 Jun 2025 15:41:01 -0400 Subject: [PATCH] nir/opt_preamble: hoist reorderable SSBO loads on AGX basically asahi version of 2f93137308c ("nir/opt_preamble: Handle load_global_ir3"). elden ring: Totals from 2409 (75.14% of 3206) affected shaders: MaxWaves: 2068416 -> 2081984 (+0.66%); split: +0.74%, -0.08% Instrs: 2439078 -> 1849792 (-24.16%) CodeSize: 15570886 -> 12196612 (-21.67%) Spills: 11623 -> 11678 (+0.47%); split: -0.63%, +1.10% Fills: 9815 -> 9762 (-0.54%); split: -1.37%, +0.83% Scratch: 31200 -> 31328 (+0.41%); split: -0.23%, +0.64% ALU: 1154256 -> 1038680 (-10.01%); split: -10.22%, +0.21% FSCIB: 1154256 -> 1038479 (-10.03%); split: -10.24%, +0.21% IC: 248318 -> 237344 (-4.42%); split: -4.47%, +0.05% GPRs: 266323 -> 254621 (-4.39%); split: -4.72%, +0.33% Uniforms: 639557 -> 794085 (+24.16%); split: -0.07%, +24.23% Signed-off-by: Alyssa Rosenzweig Reacted-by: Mike Blumenkrantz Part-of: --- src/compiler/nir/nir_opt_preamble.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compiler/nir/nir_opt_preamble.c b/src/compiler/nir/nir_opt_preamble.c index 30b1ed4c46e..98560eda03a 100644 --- a/src/compiler/nir/nir_opt_preamble.c +++ b/src/compiler/nir/nir_opt_preamble.c @@ -249,6 +249,7 @@ can_move_intrinsic(nir_intrinsic_instr *instr, opt_preamble_ctx *ctx) case nir_intrinsic_load_ssbo: case nir_intrinsic_load_ssbo_ir3: case nir_intrinsic_load_global_ir3: + case nir_intrinsic_load_agx: return (nir_intrinsic_access(instr) & ACCESS_CAN_REORDER) && can_move_srcs(&instr->instr, ctx);