[radeonsi/zink] Cry of Fear - Low Performance
System information
Printed from inxi -GSC -xx
Host: ominous Kernel: 6.5.2-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc
v: 13.2.1 Desktop: KDE Plasma v: 5.27.7 tk: Qt v: 5.15.10 wm: kwin_wayland
dm: SDDM Distro: EndeavourOS base: Arch Linux
CPU:
Info: 6-core model: AMD Ryzen 5 5600G with Radeon Graphics bits: 64
type: MT MCP arch: Zen 3 rev: 0 cache: L1: 384 KiB L2: 3 MiB L3: 16 MiB
Speed (MHz): avg: 1758 high: 3693 min/max: 400/4464 cores: 1: 2994 2: 400
3: 3693 4: 400 5: 400 6: 400 7: 400 8: 3035 9: 400 10: 2994 11: 2994
12: 2997 bogomips: 93426
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
Device-1: AMD Navi 23 [Radeon RX 6600/6600 XT/6600M] vendor: Sapphire
driver: amdgpu v: kernel arch: RDNA-2 pcie: speed: 16 GT/s lanes: 16 ports:
active: DP-1,HDMI-A-1 empty: DP-2,DP-3 bus-ID: 03:00.0 chip-ID: 1002:73ff
Display: wayland server: X.org v: 1.21.1.8 with: Xwayland v: 23.2.0
compositor: kwin_wayland driver: X: loaded: amdgpu
unloaded: modesetting,radeon alternate: fbdev,vesa dri: radeonsi
gpu: amdgpu display-ID: 0
Monitor-1: DP-1 model: AOC 24G1WG3- res: 1920x1080 dpi: 94
diag: 598mm (23.5")
Monitor-2: HDMI-A-1 model: F156P1 res: 1920x1080 dpi: 143
diag: 394mm (15.5")
API: OpenGL v: 4.6 Mesa 23.1.7-arch1.1 renderer: AMD Radeon RX 6600
(navi23 LLVM 16.0.6 DRM 3.54 6.5.2-zen1-1-zen) direct-render: Yes
If applicable
- Wine/Proton version: Proton Experimental
Describe the issue
Cry of Fear (appid 223710) is exhibiting lower performance than expected. In one given scene, I am getting 24 FPS on radeonsi, and 35 FPS on Zink, both with Mesa 23.1.7 - compared to 87 FPS on Windows 11, AMD driver version 23.9.1.
This has been tested both with and without the lighting workaround command from #7582 with no impact to performance.
Screenshots (FPS counter is visible at full size in top left.)
radeonsi | zink | Windows 11 |
---|---|---|
apitrace
cof-radeonsi-perf.trace.tar.zst
Recorded on Navi 23 with Mesa 23.1.7 using radeonsi driver, game running via Proton Experimental.
Additional notes
To anyone who may wish to work on improving this issue, a few things you should know:
For the custom OpenGL renderer in this game to work, which is required for proper gameplay, the game must be launched with WINEDLLOVERRIDES="opengl32.dll=n,b"
in the Steam launch properties. Additionally, to work around broken lighting as detailed in issue #7582, add +gl_twopassdyn 1 to launch properties (i.e. WINEDLLOVERRIDES="opengl32.dll=n,b" %command% +gl_twopassdyn 1
or in the ingame dev console toggled with tilde.
Please also note that the apitrace recorded will (probably) only play back with Linux binaries of apitrace, as this was the case in my previous testing.
Capturing an apitrace requires you to add LD_PRELOAD with the correct path to a 32-bit glxtrace.so. The trace will be saved in the root of the game directory.