mesa/src/panfrost/midgard
Icecream95 f18c55708a pan/mdg: Try scheduling load/store ops in pairs
If there are an even number of load/store ops to be scheduled, and
only one load/store op is available for scheduling, try using another
instruction type.

Helps bundle count at the cost of register pressure.

total instructions in shared programs: 333405 -> 333599 (0.06%)
instructions in affected programs: 27576 -> 27770 (0.70%)
helped: 43
HURT: 69
helped stats (abs) min: 1 max: 61 x̄: 5.49 x̃: 1
helped stats (rel) min: 0.18% max: 11.71% x̄: 2.27% x̃: 1.75%
HURT stats (abs)   min: 1 max: 95 x̄: 6.23 x̃: 2
HURT stats (rel)   min: 0.06% max: 32.42% x̄: 2.59% x̃: 1.53%
95% mean confidence interval for instructions value: -0.93 4.40
95% mean confidence interval for instructions %-change: -0.09% 1.53%
Inconclusive result (value mean confidence interval includes 0).

total bundles in shared programs: 155785 -> 152371 (-2.19%)
bundles in affected programs: 83689 -> 80275 (-4.08%)
helped: 2538
HURT: 110
helped stats (abs) min: 1 max: 59 x̄: 1.53 x̃: 1
helped stats (rel) min: 0.14% max: 22.52% x̄: 8.71% x̃: 7.69%
HURT stats (abs)   min: 1 max: 92 x̄: 4.32 x̃: 1
HURT stats (rel)   min: 0.21% max: 55.76% x̄: 4.61% x̃: 2.86%
95% mean confidence interval for bundles value: -1.41 -1.17
95% mean confidence interval for bundles %-change: -8.37% -7.94%
Bundles are helped.

total quadwords in shared programs: 264143 -> 260520 (-1.37%)
quadwords in affected programs: 141705 -> 138082 (-2.56%)
helped: 2560
HURT: 96
helped stats (abs) min: 1 max: 15 x̄: 1.49 x̃: 1
helped stats (rel) min: 0.06% max: 14.29% x̄: 5.62% x̃: 5.00%
HURT stats (abs)   min: 1 max: 11 x̄: 2.02 x̃: 2
HURT stats (rel)   min: 0.12% max: 6.20% x̄: 1.94% x̃: 1.47%
95% mean confidence interval for quadwords value: -1.42 -1.31
95% mean confidence interval for quadwords %-change: -5.50% -5.20%
Quadwords are helped.

total registers in shared programs: 21709 -> 22156 (2.06%)
registers in affected programs: 2684 -> 3131 (16.65%)
helped: 55
HURT: 470
helped stats (abs) min: 1 max: 2 x̄: 1.05 x̃: 1
helped stats (rel) min: 6.67% max: 40.00% x̄: 15.37% x̃: 14.29%
HURT stats (abs)   min: 1 max: 4 x̄: 1.07 x̃: 1
HURT stats (rel)   min: 6.67% max: 100.00% x̄: 31.63% x̃: 25.00%
95% mean confidence interval for registers value: 0.79 0.91
95% mean confidence interval for registers %-change: 24.69% 28.72%
Registers are HURT.

total threads in shared programs: 24450 -> 24360 (-0.37%)
threads in affected programs: 234 -> 144 (-38.46%)
helped: 12
HURT: 63
helped stats (abs) min: 1 max: 2 x̄: 1.50 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs)   min: 1 max: 2 x̄: 1.71 x̃: 2
HURT stats (rel)   min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for threads value: -1.49 -0.91
95% mean confidence interval for threads %-change: -38.74% -13.26%
Threads are [HURT].

total loops in shared programs: 286 -> 286 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0

total spills in shared programs: 521 -> 593 (13.82%)
spills in affected programs: 260 -> 332 (27.69%)
helped: 8
HURT: 9

total fills in shared programs: 1598 -> 1659 (3.82%)
fills in affected programs: 839 -> 900 (7.27%)
helped: 9

HURT: 10
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5745>
2021-05-24 20:54:37 +00:00
..
compiler.h pan/mdg: Fix spills to TLS 2021-05-18 19:19:01 +00:00
disassemble.c pan/mdg: Fix output types for scalar fields 2021-05-18 19:19:01 +00:00
disassemble.h pan/mdg: Hide units behind MIDGARD_MESA_DEBUG=verbose 2021-05-04 20:04:03 +00:00
helpers.h pan/mdg: improve tex opcode decoding and add missing ops 2021-04-27 07:04:08 +00:00
meson.build pan/mdg: Lower stores from helpers 2021-02-12 16:44:30 -05:00
midgard.h pan/mdg: Hide units behind MIDGARD_MESA_DEBUG=verbose 2021-05-04 20:04:03 +00:00
midgard_address.c pan/mdg: properly encode/decode ldst instructions 2021-04-27 07:04:08 +00:00
midgard_compile.c pan/mdg: Set lower_uniforms_to_ubo 2021-05-18 19:19:01 +00:00
midgard_compile.h pan/mdg: Set lower_uniforms_to_ubo 2021-05-18 19:19:01 +00:00
midgard_derivatives.c pan/mdg: improve tex opcode decoding and add missing ops 2021-04-27 07:04:08 +00:00
midgard_emit.c pan/midgard: Don't emit zero padding 2021-05-10 17:02:09 +00:00
midgard_errata_lod.c pan/mdg: Use nir_shader_instructions_pass for nir_lod_errata 2020-09-20 01:39:15 +00:00
midgard_helper_invocations.c pan/mdg: eliminate references to ins->texture.op 2020-07-30 22:55:36 +00:00
midgard_liveness.c pan/mdg: Add missing Collabora copyright notices 2020-11-09 16:45:25 +00:00
midgard_nir.h pan/mdg: Lower stores from helpers 2021-02-12 16:44:30 -05:00
midgard_nir_algebraic.py pan/mdg: Lower ufind_msb, poorly 2021-02-12 16:44:30 -05:00
midgard_nir_lower_helper_writes.c pan/mdg: Lower stores from helpers 2021-02-12 16:44:30 -05:00
midgard_nir_lower_image_bitsize.c pan/mdg: create nir pass to lower image coord bitsize 2021-01-27 12:39:41 +00:00
midgard_ops.c pan/mdg: Don't print explicit .rte 2021-05-04 20:04:03 +00:00
midgard_ops.h pan/mdg: Remove unused midgard_int_alu_op_prefix 2021-05-18 19:19:01 +00:00
midgard_opt_copy_prop.c pan/mdg: Remove midgard_opt_copy_prop_reg 2021-05-06 16:40:50 +00:00
midgard_opt_dce.c pan/mdg: improve tex opcode decoding and add missing ops 2021-04-27 07:04:08 +00:00
midgard_opt_perspective.c pan/mdg: properly encode/decode ldst instructions 2021-04-27 07:04:08 +00:00
midgard_print.c pan/mdg: Add missing Collabora copyright notices 2020-11-09 16:45:25 +00:00
midgard_print_constant.c pan/mdg: stop querying datatype by reading opcode name 2021-04-27 07:04:07 +00:00
midgard_quirks.h pan/mdg: Add quirk for missing out-of-order support 2020-06-01 18:38:49 +00:00
midgard_ra.c pan/mdg: Model blend shader interference 2021-05-06 23:26:21 +00:00
midgard_ra_pipeline.c pan/mdg: Dual source blend input/writeout support 2020-07-15 01:30:00 +00:00
midgard_schedule.c pan/mdg: Try scheduling load/store ops in pairs 2021-05-24 20:54:37 +00:00
mir.c pan/mdg: Remove midgard_opt_copy_prop_reg 2021-05-06 16:40:50 +00:00
mir_promote_uniforms.c pan/mdg: properly encode/decode ldst instructions 2021-04-27 07:04:08 +00:00
mir_squeeze.c util/hash_table: do not leak u64 struct key 2021-04-29 12:58:23 +02:00
nir_fuse_io_16.c nir: Make nir_ssa_def_rewrite_uses_after take an SSA value 2021-03-08 16:59:55 +00:00