nir/nir_opt_move,sink: Include load_ubo_vec4 as a load_ubo instr.

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 <jenatali@microsoft.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14138>
This commit is contained in:
Emma Anholt 2021-12-09 13:09:35 -08:00 committed by Marge Bot
parent 013900c4d2
commit d199d65c3a

View file

@ -56,6 +56,7 @@ nir_can_move_instr(nir_instr *instr, nir_move_options options)
nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr); nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
switch (intrin->intrinsic) { switch (intrin->intrinsic) {
case nir_intrinsic_load_ubo: case nir_intrinsic_load_ubo:
case nir_intrinsic_load_ubo_vec4:
return options & nir_move_load_ubo; return options & nir_move_load_ubo;
case nir_intrinsic_load_ssbo: case nir_intrinsic_load_ssbo:
return (options & nir_move_load_ssbo) && nir_intrinsic_can_reorder(intrin); return (options & nir_move_load_ssbo) && nir_intrinsic_can_reorder(intrin);