mesa/src/broadcom/compiler
Iago Toral Quiroga 09e0e53a3b broadcom/compiler: avoid register conflict with ldunif(a) and ldvary
ldvary instructions have implicit writes to rf0 (r5 in Pi4) that are
read in follow-up instructions to complete the interpolation calculations
so we rather not allocate ldunif(a)'s dst to rf0/r5  during these sequence
too to facilitate pairing.

This gives us -0.25% of instructions for fragment shaders in shader-db for
Pi5 and -0.64% on Pi4.

Shader-db Pi5:

total instructions in shared programs: 10890641 -> 10889197 (-0.01%)
instructions in affected programs: 575506 -> 574062 (-0.25%)
helped: 2506
HURT: 1378
Instructions are helped.

total max-temps in shared programs: 2226555 -> 2226471 (<.01%)
max-temps in affected programs: 5061 -> 4977 (-1.66%)
helped: 139
HURT: 78
Max-temps are helped.

total sfu-stalls in shared programs: 15143 -> 15166 (0.15%)
sfu-stalls in affected programs: 310 -> 333 (7.42%)
helped: 134
HURT: 195
Inconclusive result (value mean confidence interval includes 0).

total inst-and-stalls in shared programs: 10905784 -> 10904363 (-0.01%)
inst-and-stalls in affected programs: 577053 -> 575632 (-0.25%)
helped: 2497
HURT: 1415
Inst-and-stalls are helped.

total nops in shared programs: 183945 -> 183672 (-0.15%)
nops in affected programs: 3862 -> 3589 (-7.07%)
helped: 478
HURT: 234
Nops are helped.

Shader-db Pi4:

total instructions in shared programs: 12842116 -> 12835720 (-0.05%)
instructions in affected programs: 996970 -> 990574 (-0.64%)
helped: 6027
HURT: 367
Instructions are helped.

total max-temps in shared programs: 2251877 -> 2251707 (<.01%)
max-temps in affected programs: 2670 -> 2500 (-6.37%)
helped: 167
HURT: 9
Max-temps are helped.

total sfu-stalls in shared programs: 21132 -> 21093 (-0.18%)
sfu-stalls in affected programs: 114 -> 75 (-34.21%)
helped: 92
HURT: 55
Sfu-stalls are helped.

total inst-and-stalls in shared programs: 12863248 -> 12856813 (-0.05%)
inst-and-stalls in affected programs: 1008237 -> 1001802 (-0.64%)
helped: 6070
HURT: 359
Inst-and-stalls are helped.

total nops in shared programs: 281645 -> 281200 (-0.16%)
nops in affected programs: 2241 -> 1796 (-19.86%)
helped: 501
HURT: 88
Nops are helped.

Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31355>
2024-09-25 14:21:46 +00:00
..
meson.build format: Generate endian-independent format aliases 2024-07-19 13:50:42 +00:00
nir_to_vir.c broadcom: drop backend implementation of nir_op_ufind_msb 2024-08-13 13:16:18 +02:00
qpu_schedule.c broadcom/compiler: use unsigned types when performing bitshifting 2024-07-01 08:02:07 +00:00
qpu_validate.c broadcom/compiler: validate rtop + thrsw hazard 2024-06-27 06:43:09 +00:00
v3d_compiler.h broadcom/compiler: rename is_ldunif_dst to try_rf0 2024-09-25 14:21:46 +00:00
v3d_nir_lower_algebraic.py broadcom/compiler: add generated v3d_nir_lower_algebraic 2024-06-26 10:04:02 +00:00
v3d_nir_lower_image_load_store.c broadcom: follow version naming convention 2024-07-08 11:19:31 +00:00
v3d_nir_lower_io.c broadcom/compiler: implement load_kernel_input 2024-06-26 10:04:03 +00:00
v3d_nir_lower_line_smooth.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
v3d_nir_lower_load_store_bitsize.c broadcom/compiler: handle up to vec16 load_uniforms 2024-06-26 10:04:03 +00:00
v3d_nir_lower_logic_ops.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
v3d_nir_lower_scratch.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
v3d_nir_lower_txf_ms.c nir: Take a nir_def * in nir_tex_instr_add_src() 2023-08-18 01:00:14 +00:00
v3d_packing.c broadcom/compiler: add v3d_pack_unnormalized_coordinates helper 2023-10-31 13:00:34 +01:00
v3d_tex.c broadcom/compiler: simplify v3d_vir_emit_tex 2024-05-09 09:29:44 +02:00
vir.c nir: Introduce nir_debug_info_instr 2024-08-25 10:26:33 +00:00
vir_dump.c broadcom: only support v42 and v71 2023-11-02 11:59:08 +01:00
vir_live_variables.c broadcom/compiler: update payload registers handling when computing live intervals 2023-10-13 22:37:42 +00:00
vir_opt_constant_alu.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
vir_opt_copy_propagate.c broadcom/compiler: disallow copy propagation of FMOV exclusive modifiers 2024-07-10 08:29:50 +02:00
vir_opt_dead_code.c broadcom/compiler: drop multop if we dce umul24 2024-06-27 06:43:09 +00:00
vir_opt_redundant_flags.c broadcom/qpu: define v3d_qpu_input, use on v3d_qpu_alu_instr 2023-10-13 22:37:41 +00:00
vir_opt_small_immediates.c broadcom/compiler: skip small immediates optimization on vpm instructions 2024-09-23 07:45:46 +00:00
vir_register_allocate.c broadcom/compiler: avoid register conflict with ldunif(a) and ldvary 2024-09-25 14:21:46 +00:00
vir_to_qpu.c broadcom: only support v42 and v71 2023-11-02 11:59:08 +01:00