From d199d65c3af6cc87cd77585b21435ddb5125654d Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Thu, 9 Dec 2021 13:09:35 -0800 Subject: [PATCH] nir/nir_opt_move,sink: Include load_ubo_vec4 as a load_ubo instr. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We weren't doing much motion in nir-to-tgsi because we considered all our lowered load-ubos as unmovable. softpipe shader-db: total temps in shared programs: 563942 -> 563136 (-0.14%) temps in affected programs: 9833 -> 9027 (-8.20%) r300 shader-db: instructions in affected programs: 22858 -> 23575 (3.14%) temps in affected programs: 2039 -> 1813 (-11.08%) (NIR had given r300 -19% instrs for +40% temps, so this feels like a worthwhile trade back). Reivewed-by: Jesse Natalie Reviewed-by: Marek Olšák Reviewed-by: Jason Ekstrand Part-of: --- src/compiler/nir/nir_opt_sink.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compiler/nir/nir_opt_sink.c b/src/compiler/nir/nir_opt_sink.c index 279ecfdaca5..13eeb9ea54d 100644 --- a/src/compiler/nir/nir_opt_sink.c +++ b/src/compiler/nir/nir_opt_sink.c @@ -56,6 +56,7 @@ nir_can_move_instr(nir_instr *instr, nir_move_options options) nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr); switch (intrin->intrinsic) { case nir_intrinsic_load_ubo: + case nir_intrinsic_load_ubo_vec4: return options & nir_move_load_ubo; case nir_intrinsic_load_ssbo: return (options & nir_move_load_ssbo) && nir_intrinsic_can_reorder(intrin);