rpcs3 icon indicating copy to clipboard operation
rpcs3 copied to clipboard

rsx: Minecraft pins RSX Load to 100% with stuttering frame-pacing and performance degradation

Open AniLeo opened this issue 1 year ago • 5 comments

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

Screenshot from 2024-08-12 12-26-41

OpenGL (RadeonSI) ~100 FPS

Screenshot from 2024-08-12 12-28-20

RSX Capture

NPEB01899_20240812123044_capture.rrc.gz

Log File

RPCS3.log.gz

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

AniLeo avatar Aug 12 '24 11:08 AniLeo

The gap has widened now. Here's new test data:

Vulkan (RADV): 85 FPS

Image

OpenGL (RadeonSI): 120 FPS

Image

RSX Capture

NPEB01899_20250228171826_capture.rrc.gz

Log File

RPCS3.log.gz

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

AniLeo avatar Feb 28 '25 17:02 AniLeo

Ok, I see those duplicate draw requests, those mean instanced rendering. I need to take a deeper look when I have some time.

kd-11 avatar Feb 28 '25 19:02 kd-11

New data from 9800X3D + RX 6800 XT

Vulkan (RADV): 263 FPS

Image

OpenGL (RadeonSI): 342 FPS

Image

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

AniLeo avatar Mar 27 '25 01:03 AniLeo

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.

kd-11 avatar Apr 14 '25 00:04 kd-11

The latest work around optimising the Vulkan render has improved the situation a bit, tested with #17088 on 2fbd0f337c8500a5b37238fe1d853991c6443f94

Vulkan (RADV): 293 FPS

Image

AniLeo avatar Apr 24 '25 21:04 AniLeo

@AniLeo is that still an issue?

digant73 avatar Oct 25 '25 20:10 digant73

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

Image

Vulkan (radv): ~345 FPS

Image
- 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

AniLeo avatar Nov 18 '25 03:11 AniLeo