[radv] Above 4G Decoding severely hurts CPU performance in Red Dead Redemption 2
With Red Dead Redemption 2 (latest Rockstar Games Launcher version in wine-staging), a weird CPU performance drop can be seen in the desert benchmark scene and elsewhere in the actual game:
Side note: This also happens with amdvlk-pro on Windows (it seems on some systems with just Above 4G Decoding enabled, on others also SAM/CAM needs to be enabled to provoke this).
I've also noticed that when Above 4G decoding is disabled, the game clears VRAM allocation chunks more aggressively with RADV than with amdvlk-pro on Linux, which causes temporary performance drops after some time (plateaus/mountains in frame time graph). Weirdly the Windows amdvlk driver behaves like RADV though. However, also this changes when turning on SAM/CAM, it then allocates much more VRAM. Highly intricate. :)
So we have the issues of slowed down CPU performance with Above 4G Decoding/SAM/CAM or temporary performance drops without it when it clears VRAM allocation. It would seem there is a connection?
inxi -GSC -xx System: Host: linux Kernel: 5.12.0-rc6-144-tkg-cfs x86_64 bits: 64 compiler: gcc v: 10.2.0 Desktop: KDE Plasma 5.21.4 tk: Qt 5.15.2 wm: kwin_x11 dm: startx Distro: Arch Linux CPU: Info: 6-Core model: 11th Gen Intel Core i5-11400F bits: 64 type: MT MCP arch: N/A rev: 1 cache: L2: 12 MiB flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 62208 Speed: 4235 MHz min/max: 800/4400 MHz Core speeds (MHz): 1: 4235 2: 4237 3: 3976 4: 4037 5: 4260 6: 4228 7: 3721 8: 4241 9: 4204 10: 3741 11: 4231 12: 4173 Graphics: Device-1: Advanced Micro Devices [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] driver: amdgpu v: kernel bus-ID: 03:00.0 chip-ID: 1002:73bf Display: server: X.org 1.20.10 compositor: kwin_x11 driver: loaded: amdgpu resolution: <missing: xdpyinfo> OpenGL: renderer: AMD SIENNA_CICHLID (DRM 3.40.0 5.12.0-rc6-144-tkg-cfs LLVM 11.1.0) v: 4.6 Mesa 21.1.0-devel (git-cc8d4cd1ae) direct render: Yes
- Wine/Proton version: wine-staging 6.5 with esync enabled