rsx: Minecraft pins RSX Load to 100% with stuttering frame-pacing and performance degradation
Minecraft, while tested on its latest update version 1.84 on the tutorial area for benchmarking, pins RSX Load to 100% as it loads the map, causing a big performance degradation, as performance halves since the player's spawning until the area is loaded in. This area is emitting ~1930 draw calls after fully loaded.
Vulkan (RADV) ~83 FPS
OpenGL (RadeonSI) ~100 FPS
RSX Capture
NPEB01899_20240812123044_capture.rrc.gz
Log File
To note that the game attempts to draw duplicate calls
E RSX: Duplicate draw request. Start=1756, Count=256 x943
E RSX: Duplicate draw request. Start=432, Count=256 x100
E RSX: Duplicate draw request. Start=2316, Count=256 x212
E RSX: Duplicate draw request. Start=1004, Count=256 x297
E RSX: Duplicate draw request. Start=184, Count=256 x239
E RSX: Duplicate draw request. Start=96, Count=256 x212
E RSX: Duplicate draw request. Start=48, Count=256 x153
E RSX: Duplicate draw request. Start=76, Count=256 x391
E RSX: Duplicate draw request. Start=920, Count=256 x383
E RSX: Duplicate draw request. Start=40, Count=256 x50
Specifications
RPCS3 v0.0.32-16801-c7b2a21f Alpha Firmware version: 4.90 6.10.0-3-MANJARO AMD Ryzen 9 5900HX with Radeon Graphics AMD Radeon RX 6700M (RADV NAVI22) running on driver 24.1.3
The gap has widened now. Here's new test data:
Vulkan (RADV): 85 FPS
OpenGL (RadeonSI): 120 FPS
RSX Capture
NPEB01899_20250228171826_capture.rrc.gz
Log File
Specifications
RPCS3 v0.0.34-17530-207ee59a Alpha Firmware version: 4.90 AMD Ryzen 9 5900HX with Radeon Graphics 6.13.1-2-MANJARO AMD Radeon RX 6700M (RADV NAVI22)' running on driver 24.3.4
Ok, I see those duplicate draw requests, those mean instanced rendering. I need to take a deeper look when I have some time.
New data from 9800X3D + RX 6800 XT
Vulkan (RADV): 263 FPS
OpenGL (RadeonSI): 342 FPS
AMD Ryzen 7 9800X3D 8-Core Processor | 16 Threads | 30.43 GiB RAM | TSC: 4.691GHz | AVX-512+ | FMA3
Operating system: POSIX, Name: Linux, Release: 6.14.0-1-MANJARO, Version: #1 SMP PREEMPT_DYNAMIC Wed, 26 Mar 2025 07:48:57 +0000
RSX: Found Vulkan-compatible GPU: 'AMD Radeon RX 6800 XT (RADV NAVI21)' running on driver 25.0.2
The gap in dice for me increased, OGL gets almost 2x Vulkan perf. However, this actually exposed the issue, we need to rework our pipeline and descriptor binding model. This will come later as its a big change.
The latest work around optimising the Vulkan render has improved the situation a bit, tested with #17088 on 2fbd0f337c8500a5b37238fe1d853991c6443f94
Vulkan (RADV): 293 FPS
@AniLeo is that still an issue?
Yes, albeit the performance gap has narrowed now. radeonsi now has the performance radv had back in March, and radv is only 35 FPS faster now.
This one is not a bug that will go away without us realising it, as it requires some more optimisation work done on the Vulkan render. Here's the latest data for it:
OpenGL (radeonsi): 380 FPS
Vulkan (radv): ~345 FPS
- SYS: RPCS3 v0.0.38-18364-c669a0be Alpha | master
- SYS: AMD Ryzen 7 9800X3D 8-Core Processor | 16 Threads | 30.43 GiB RAM | TSC: 4.691GHz | AVX-512+ | FMA3
- SYS: Operating system: POSIX, Name: Linux, Release: 6.17.1-0-MANJARO, Version: #1 SMP PREEMPT_DYNAMIC Tue, 07 Oct 2025 07:57:35 +0000
- RSX: Found Vulkan-compatible GPU: 'AMD Radeon RX 6800 XT (RADV NAVI21)' running on driver 25.2.3
- SYS: LLVM version: 19.1.7
- SYS: Firmware version: 4.92