Skip to content

Instantly share code, notes, and snippets.

@pendingchaos
Last active August 3, 2025 13:44
Show Gist options
  • Select an option

  • Save pendingchaos/aba1e4c238cf039d17089f29a8c6aa63 to your computer and use it in GitHub Desktop.

Select an option

Save pendingchaos/aba1e4c238cf039d17089f29a8c6aa63 to your computer and use it in GitHub Desktop.
Benchmarks of 2019-06-14 to 2019-06-17
system information:
OS: Fedora 30
uname -r: 5.1.7-300.fc30.x86_64
CPU: Intel® Core™ i7-6700K CPU @ 4.00GHz × 8
15.6 GiB of RAM
# Benchmark
workloads:
GTA V
Strange Brigade
Dawn of War III
Mad Max
Rise of the Tomb Raider
Thrones of Britannia
Total War: Warhammer II
The Talos Principle
F1 2017
Three Kingdoms
Doom (2016) (with and without the fast path)
running under Wayland again
AMDGPU-PRO has artifacts with hands and zombies
gpu: Vega 64
run in 4K and use highest settings
software versions:
LLVM rL363268
RADV/ACO a092f01be8a (based on Mesa c58dff753c2)
RADV/LLVM c58dff753c2
AMDVLK 2019.Q2.5
AMDGPU-PRO 19.10-785425
Proton 4.2-7
set /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor to "performance"
set /sys/devices/system/cpu/intel_pstate/no_turbo to "1"
set /sys/class/drm/card0/device/power_dpm_force_performance_level to "profile_standard"
# pipeline-db
time pipeline-db runs comparing AMDVLK, RADV/LLVM, RADV/ACO and AMDGPU-PRO
use a ACO compiled with IR validation disabled (now disabled by default in release builds)
RADV/ACO (vkpipeline-db run): 410.09 seconds, 405.73 seconds (avg 407.91 seconds)
RADV/LLVM (vkpipeline-db run): 745.23 seconds, 748.83 seconds (avg 747.03 seconds)
AMDGPU-PRO (vkpipeline-db run): 217.39 seconds, 214.94 seconds (avg 216.16 seconds)
AMDVLK (vkpipeline-db run): 623.23 seconds, 620.74 seconds (avg 621.99 seconds)
RADV/ACO w/o ACO (vkpipeline-db run): 355.71 seconds
RADV/ACO w/o LLVM (vkpipeline-db run): 227.72 seconds
approximate breakdown of ACO run:
52.20 seconds spent in ACO (13% of the run)
180.19 seconds spent in LLVM (44% of the run)
175.52 seconds spent in NIR and other areas (43% of the run)
estimated performance of ACO compared to LLVM:
391.32 seconds spent compiling FS/CS in LLVM run
so ACO is 7.5x faster than than LLVM (52.20 seconds)
information from RADV_DEBUG=compiletime
LLVM spends 384.72 CPU seconds and ACO spends 50.28 CPU seconds
ACO's CPU time is 7.7x lower than LLVM
VS/GS/TCS/TES guesstimates:
since 180.19 seconds in an ACO run is spent in LLVM
and ACO is 7.5x faster for FS/CS
if ACO's performance relative to LLVM is the same for other stages
implementing VS/GS/TCS/TES might remove about ~156 seconds from ACO runs
and bring down the time to about ~252 seconds
The kernel release during the Rise of the Tomb Raider runs was "5.1.8-300.fc30.x86_64".
Strange brigade
RADV/LLVM: 48.33 FPS
RADV/ACO: 51.07 FPS
AMDVLK: 50.33 FPS
AMDGPU-PRO: 53.20 FPS
RADV/ACO is 5.7% faster than RADV/LLVM
Total War Saga: Thrones of Britannia
RADV/LLVM: 14.50 FPS
RADV/ACO: 15.33 FPS
AMDVLK: 14.57 FPS
AMDGPU-PRO: 11.97 FPS
RADV/ACO is 5.7% faster than RADV/LLVM
Warhammer 40,000: Dawn of War III
RADV/LLVM: 35.57 FPS
RADV/ACO: 35.88 FPS
AMDVLK: 33.62 FPS
AMDGPU-PRO: 32.37 FPS
RADV/ACO is 0.9% faster than RADV/LLVM
F1 2017
RADV/LLVM: 54.00 FPS
RADV/ACO: 54.00 FPS
AMDVLK: 56.00 FPS
AMDGPU-PRO: 55.00 FPS
RADV/ACO is 0.0% faster than RADV/LLVM
Grand Theft Auto V ("scene-0" scene)
RADV/LLVM: 16.84 FPS
RADV/ACO: 16.54 FPS
AMDVLK: 15.71 FPS
AMDGPU-PRO: 16.09 FPS
RADV/ACO is -1.8% faster than RADV/LLVM
Grand Theft Auto V ("scene-1" scene)
RADV/LLVM: 16.27 FPS
RADV/ACO: 15.99 FPS
AMDVLK: 15.61 FPS
AMDGPU-PRO: 15.82 FPS
RADV/ACO is -1.7% faster than RADV/LLVM
Grand Theft Auto V ("scene-2" scene)
RADV/LLVM: 16.02 FPS
RADV/ACO: 15.71 FPS
AMDVLK: 15.53 FPS
AMDGPU-PRO: 15.84 FPS
RADV/ACO is -2.0% faster than RADV/LLVM
Grand Theft Auto V ("scene-3" scene)
RADV/LLVM: 18.00 FPS
RADV/ACO: 17.73 FPS
AMDVLK: 19.10 FPS
AMDGPU-PRO: 19.60 FPS
RADV/ACO is -1.5% faster than RADV/LLVM
Grand Theft Auto V ("scene-4" scene)
RADV/LLVM: 17.67 FPS
RADV/ACO: 17.35 FPS
AMDVLK: 17.71 FPS
AMDGPU-PRO: 18.00 FPS
RADV/ACO is -1.8% faster than RADV/LLVM
Mad Max ("camp-hollow" scene)
RADV/LLVM: 45.80 FPS
RADV/ACO: 46.78 FPS
AMDVLK: 45.56 FPS
AMDGPU-PRO: 44.82 FPS
RADV/ACO is 2.1% faster than RADV/LLVM
Mad Max ("stronghold" scene)
RADV/LLVM: 42.00 FPS
RADV/ACO: 42.47 FPS
AMDVLK: 45.76 FPS
AMDGPU-PRO: 45.39 FPS
RADV/ACO is 1.1% faster than RADV/LLVM
Mad Max ("hope-glory" scene)
RADV/LLVM: 45.49 FPS
RADV/ACO: 47.15 FPS
AMDVLK: 44.88 FPS
AMDGPU-PRO: 43.98 FPS
RADV/ACO is 3.7% faster than RADV/LLVM
Mad Max ("landmover" scene)
RADV/LLVM: 52.13 FPS
RADV/ACO: 53.57 FPS
AMDVLK: 51.42 FPS
AMDGPU-PRO: 50.10 FPS
RADV/ACO is 2.7% faster than RADV/LLVM
Rise of the Tomb Raider ("mountain" scene)
RADV/LLVM: 48.33 FPS
RADV/ACO: 49.03 FPS
AMDVLK: 47.67 FPS
AMDGPU-PRO: 48.43 FPS
RADV/ACO is 1.4% faster than RADV/LLVM
Rise of the Tomb Raider ("tomb" scene)
RADV/LLVM: 36.50 FPS
RADV/ACO: 38.53 FPS
AMDVLK: 36.27 FPS
AMDGPU-PRO: 38.07 FPS
RADV/ACO is 5.6% faster than RADV/LLVM
Rise of the Tomb Raider ("valley" scene)
RADV/LLVM: 36.30 FPS
RADV/ACO: 37.13 FPS
AMDVLK: 35.50 FPS
AMDGPU-PRO: 36.30 FPS
RADV/ACO is 2.3% faster than RADV/LLVM
The Talos Principle
RADV/LLVM: 70.10 FPS
RADV/ACO: 70.17 FPS
AMDVLK: 68.97 FPS
AMDGPU-PRO: 70.03 FPS
RADV/ACO is 0.1% faster than RADV/LLVM
Total War: THREE KINGDOMS
RADV/LLVM: 15.80 FPS
RADV/ACO: 16.00 FPS
AMDVLK: 14.17 FPS
AMDGPU-PRO: 14.90 FPS
RADV/ACO is 1.3% faster than RADV/LLVM
Total War: WARHAMMER II ("fallen" scene)
RADV/LLVM: 29.07 FPS
RADV/ACO: 29.93 FPS
AMDVLK: 28.53 FPS
AMDGPU-PRO: 27.00 FPS
RADV/ACO is 3.0% faster than RADV/LLVM
Total War: WARHAMMER II ("skaven" scene)
RADV/LLVM: 29.60 FPS
RADV/ACO: 29.63 FPS
AMDVLK: 31.13 FPS
AMDGPU-PRO: 29.37 FPS
RADV/ACO is 0.1% faster than RADV/LLVM
Doom 2016 (generic path)
RADV/ACO: 50.46 FPS
RADV/LLVM: 47.17 FPS
RADV/ACO is 7.0% faster than RADV/LLVM
Doom 2016 (AMD path)
RADV/ACO: 54.85 FPS
RADV/LLVM: 45.34 FPS
AMDVLK: 49.66 FPS
AMDGPU-PRO: 57.54 FPS
RADV/ACO is 21.0% faster than RADV/LLVM
@PietJanHein
Copy link
Copy Markdown

Frankly, these benchmarks miss to some extend the most important contribution of ACO. 1 FPS or a few FPS compared to for RADV/LLVM or AMDVLK extra is nice but not so impactful. When you upgrade to a new graphics card with 2.5X the performance of your current one then you literally won't notice the difference in performance between the two software-stacks.

However, ACO also changed some games from unplayable to great, that is where it shines. A concrete example which I experienced: Borderlands2 native has a very bad performance like many games from that era. Kudos to the developers for supporting Linux back then but the performance is unplayable for me due to both the low FPS and the irregular framerendertimes, this on a 3700X and 5700 XT around the year 2020.
The Proton version of Borderlands2 also was broken back then, think about 10-20 FPS, something like that, maybe even worse.
Simply enabling ACO changed the performance from that to near-native, >400 FPS. That is how impactful it was in certain situations. I can only speculate why, maybe because the graphics are quite light (DX9, relatively low-complexity graphics from a technical point of view) but the compile-time got in the way and that was fixed by using ACO. I am pointing this all out because the Archwiki about amdgpu refers to this Github page. I think that this nuance matters.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment