radv: Star Wars The Old Republic hang when DCC is enabled
Description
Originally reported in the Star Wars The Old Republic Proton issue. At least on rdna3 the game will sometimes cause a GPU hang
Log files (for system lockups / game freezes / crashes)
Steps to reproduce
Easiet is to replay the apitrace attached below as it will hang for me at the end when replayed with dxvk.
For ingame testing the way i've been reproducing is creating a new character and playing through a quick intro section. When making the character choose the Galactic Republic -> Smugler -> Scoundrel and then complete the first mission. Hang will usually occur at the end of the dialog cutscene when your ship has been stolen, but have happened earlier a couple of times.
See screenshots snippets below for graphical settings used while testing this.
System information
Setup
System:
Host: blisto-monkey Kernel: 6.5.4-arch2-1 arch: x86_64 bits: 64
compiler: gcc v: 13.2.1 Desktop: KDE Plasma v: 5.27.8 tk: Qt v: 5.15.10
wm: kwin_wayland dm: SDDM Distro: Arch Linux
CPU:
Info: 16-core model: AMD Ryzen 9 7950X bits: 64 type: MT MCP arch: Zen 4
rev: 2 cache: L1: 1024 KiB L2: 16 MiB L3: 64 MiB
Speed (MHz): avg: 3377 high: 5472 min/max: 400/5881 cores: 1: 5472 2: 3390
3: 3154 4: 4714 5: 400 6: 400 7: 5459 8: 400 9: 5101 10: 5365 11: 3511
12: 400 13: 400 14: 400 15: 5395 16: 5395 17: 5470 18: 400 19: 4461
20: 4361 21: 5106 22: 3139 23: 400 24: 3162 25: 3625 26: 5321 27: 4583
28: 5396 29: 3597 30: 3896 31: 400 32: 5396 bogomips: 288106
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
Device-1: AMD Navi 31 [Radeon RX 7900 XT/7900 XTX] vendor: Sapphire PULSE
driver: amdgpu v: kernel pcie: speed: 16 GT/s lanes: 16 ports: active: DP-1
empty: DP-2,HDMI-A-1,HDMI-A-2 bus-ID: 03:00.0 chip-ID: 1002:744c
Device-2: AMD Raphael vendor: ASUSTeK driver: amdgpu v: kernel
arch: RDNA-2 pcie: speed: 16 GT/s lanes: 16 ports: active: none
empty: DP-3,HDMI-A-3 bus-ID: 0e:00.0 chip-ID: 1002:164e temp: 50.0 C
Display: wayland server: X.org v: 1.21.1.8 with: Xwayland v: 23.2.1
compositor: kwin_wayland driver: X: loaded: amdgpu unloaded: modesetting
alternate: fbdev,vesa dri: radeonsi gpu: amdgpu,amdgpu display-ID: 0
Monitor-1: DP-1 res: 1920x1080 size: N/A
API: OpenGL v: 4.6 Mesa 23.3.0-devel (git-08735fd90d) renderer: AMD
Radeon RX 7900 XTX (gfx1100 LLVM 16.0.6 DRM 3.54 6.5.4-arch2-1)
direct render: Yes
If applicable
- DXVK version: 2.0 and above
- Wine/Proton version: Proton Experimental Bleeding Edge
Regression
With radv it's been tested to be an issue since commit c08082e8
With dxvk i can not reproduce it with 1.10.1 but can with 2.0 and above. Alot of the commits in between those two versions sadly will crash the game and apitrace so it has not been possible to bisect what changed in regards to dxvk. I'm pretty sure 1.10.2 & 1.10.3 used to be able to run the game (they don't now for me) so I'm not sure if a game update did something there or if that is something else.
Edit: Strong suspicion #9878 (closed) is the same issue. In that one i was able to bisect dxvk to either doitsujin/dxvk@90abd99 or doitsujin/dxvk@63d582a. Two commits since the former have a compiling error.
API captures (if applicable, optional)
Apitrace captured with wined3d. Causes a hang for me near the end when replayed with dxvk and 7900xtx
https://drive.proton.me/urls/G50A73GKMW#VbGhAtXUOFmt
Further information (optional)
Not reproduced with amdvlk.
RADV_DEBUG=nodcc
works around the issue