mesa/src/panfrost
Olivia Lee 6f5f5ca4b2 pan/va: allow using both FAU and small constants in the same instruction
Normally we aren't able to mix FAU srcs from different pages. We
consider small constants (BIR_FAU_IMMEDIATE) to be page 0, and so were
previously always pulling small constants out with a MOV in instructions
that also use FAUs. This is not necessary. Message unit instructions
have no restrictions on small constant use and execution unit
instructions allow mixing small constants with FAU srcs as long as we
don't use more than 64 bits.

shader-db results on G610:

total instrs in shared programs: 673595 -> 672719 (-0.13%)
instrs in affected programs: 111294 -> 110418 (-0.79%)
helped: 293
HURT: 9
helped stats (abs) min: 1.0 max: 27.0 x̄: 3.12 x̃: 2
helped stats (rel) min: 0.08% max: 10.53% x̄: 1.71% x̃: 1.02%
HURT stats (abs)   min: 1.0 max: 15.0 x̄: 4.33 x̃: 3
HURT stats (rel)   min: 0.06% max: 12.20% x̄: 2.07% x̃: 0.49%
95% mean confidence interval for instrs value: -3.38 -2.42
95% mean confidence interval for instrs %-change: -1.80% -1.39%
Instrs are helped.

total cycles in shared programs: 34260.22 -> 34257.44 (<.01%)
cycles in affected programs: 143.53 -> 140.75 (-1.94%)
helped: 78
HURT: 1
helped stats (abs) min: 0.015625 max: 0.296875 x̄: 0.04 x̃: 0
helped stats (rel) min: 0.32% max: 5.71% x̄: 1.78% x̃: 1.32%
HURT stats (abs)   min: 0.046875 max: 0.046875 x̄: 0.05 x̃: 0
HURT stats (rel)   min: 1.90% max: 1.90% x̄: 1.90% x̃: 1.90%
95% mean confidence interval for cycles value: -0.05 -0.02
95% mean confidence interval for cycles %-change: -1.98% -1.49%
Cycles are helped.

total cvt in shared programs: 4097.12 -> 4083.44 (-0.33%)
cvt in affected programs: 706.75 -> 693.06 (-1.94%)
helped: 293
HURT: 9
helped stats (abs) min: 0.015625 max: 0.421875 x̄: 0.05 x̃: 0
helped stats (rel) min: 0.19% max: 45.45% x̄: 6.38% x̃: 2.53%
HURT stats (abs)   min: 0.015625 max: 0.234375 x̄: 0.07 x̃: 0
HURT stats (rel)   min: 0.15% max: 50.00% x̄: 7.85% x̃: 1.90%
95% mean confidence interval for cvt value: -0.05 -0.04
95% mean confidence interval for cvt %-change: -7.03% -4.89%
Cvt are helped.

total code size in shared programs: 6205824 -> 6198528 (-0.12%)
code size in affected programs: 395648 -> 388352 (-1.84%)
helped: 57
HURT: 2
helped stats (abs) min: 128.0 max: 256.0 x̄: 132.49 x̃: 128
helped stats (rel) min: 0.08% max: 25.00% x̄: 6.96% x̃: 5.26%
HURT stats (abs)   min: 128.0 max: 128.0 x̄: 128.00 x̃: 128
HURT stats (rel)   min: 1.12% max: 2.86% x̄: 1.99% x̃: 1.99%
95% mean confidence interval for code size value: -137.46 -109.86
95% mean confidence interval for code size %-change: -8.19% -5.12%
Code size are helped.

total threads in shared programs: 22203 -> 22204 (<.01%)
threads in affected programs: 1 -> 2 (100.00%)
helped: 1
HURT: 0

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35154>
2025-05-28 22:21:46 +00:00
..
ci pan/lib: wire up ASTC HDR formats 2025-05-28 14:49:06 +00:00
clc pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
compiler pan/va: allow using both FAU and small constants in the same instruction 2025-05-28 22:21:46 +00:00
drm-shim panfrost: Fix group priorities in drm-shim 2025-02-05 13:30:29 +00:00
ds pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
genxml pan/genxml: Fix typo for NEXT_SB_ENTRY 2025-05-28 17:03:30 +00:00
lib pan/lib: wire up ASTC HDR formats 2025-05-28 14:49:06 +00:00
libpan panfrost: Move genxml out of pan/lib 2025-05-09 09:33:38 +00:00
midgard pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
perf pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
shared pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
tools pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
util pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
vulkan panvk: drop bo refcount from panvk_image 2025-05-28 18:06:57 +00:00
.clang-format panfrost: Add pan_unpack to ForEachMacros 2025-05-12 08:37:08 +00:00
meson.build panfrost: Move genxml out of pan/lib 2025-05-09 09:33:38 +00:00