Update: the RADV_DEBUG=nocompute workaround turned out to be unreliable. After a clean run yesterday, the crash recurred today at the exact same in-game spot — same save, same path, no reboot, no Steam updates, env var verified still in launch options.
The fault signature is identical:
amdgpu 0000:2f:00.0: [gfxhub] page fault (src_id:0 ring:24 vmid:5 pasid:1022)
amdgpu 0000:2f:00.0: Process CrimsonDesert.e pid 72484 thread vkd3d_queue pid 72678
amdgpu 0000:2f:00.0: in page starting at address 0x0000000000000000 from client 10
amdgpu 0000:2f:00.0: GCVM_L2_PROTECTION_FAULT_STATUS:0x00501431
amdgpu 0000:2f:00.0: Faulty UTCL2 client ID: SQC (data) (0xa)
amdgpu 0000:2f:00.0: MORE_FAULTS: 0x1
amdgpu 0000:2f:00.0: PERMISSION_FAULTS: 0x3
[...]
amdgpu 0000:2f:00.0: ring gfx_0.0.0 timeout, signaled seq=9324618, emitted seq=9324620
amdgpu 0000:2f:00.0: Starting gfx_0.0.0 ring reset
amdgpu 0000:2f:00.0: Ring gfx_0.0.0 reset succeeded
amdgpu 0000:2f:00.0: [drm] device wedged, but recovered through reset
Crucially, the fault is still on hardware ring comp_1.1.1 (ring 24) even though RADV_DEBUG=nocompute removes the async-compute queue family from the Vulkan view of the device. Confirmed via vulkaninfo:
Without nocompute:
With RADV_DEBUG=nocompute:
Since vkd3d-proton cannot allocate from a queue family that doesn't exist, the fault on comp_1.1.1 must originate from radv's internal use of compute hardware rings (CP DMA, internal image init, etc.), not from vkd3d-proton's explicit submissions. That points upstream at mesa/radv rather than at vkd3d-proton's submission logic.
Yesterday's apparent success was likely just non-deterministic timing — same system state, different outcome on different runs.
Next test on my end: RADV_DEBUG=nocompute,nodma to see whether disabling CP DMA suppresses the fault. Will report back.
Can you share the save file from the location where you have this problem?
Can you share the save file from the location where you have this problem?
crimson-desert-save-backup-20260524.tar.gz
To reproduce: solve the initial puzzle cube to get past the doorway, step on on the plate and drop through the now open floor. Walk under the laser - this is where I experience the crash.
As a note, I uninstalled/reinstalled just tonight but haven't tested post-reinstall yet.
EDIT: tested, still crashing. Also, you can just run straight after solving the initial puzzle to get past the doorway to reproduce the crash.
Thanks, that was indeed a reliable hang. I reported the issue on the Mesa tracker here: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15563
Thanks, that was indeed a reliable hang. I reported the issue on the Mesa tracker here: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15563
You're the best, thanks!
Resolved as game bug workaround in Mesa.
proton experimentalx1 2026-05RADV_DEBUG=nocompute`x2 2026-05RADV_DEBUG=nocompute,nodma`x1 2026-05RADV_DEBUG=nocompute`:x1 2026-05VKD3D_DISABLE_EXTENSIONS=VK_EXT_descriptor_buffer`x1 2026-05d3d12.dllx1 2026-05
Summary
Reproducible GPUVM page fault on the async compute queue (
comp_1.1.1) inCrimson Desert (Steam appid 3321460) at a fixed in-game location on RDNA4
(RX 9070 XT). Faulting thread is
vkd3d_queue. SettingRADV_DEBUG=nocomputein launch options reliably prevents the crash,isolating the bug to the async-compute submission path.
Likely related to #3056 — same renderer, same fault family
(GPUVM +
VK_ERROR_DEVICE_LOST+ enhanced-barrier spam), but different GPUgeneration (RDNA4 here vs RDNA3 there), different trigger (specific
in-game location here vs menu→game transition there), and different
working mitigation (
RADV_DEBUG=nocomputehere vs descriptor-buffertoggle there). Filing separately so the RDNA4-specific evidence isn't
lost; feel free to merge if they share a root cause.
Software
experimental-11.0-20260518b(d3d12.dll built 2026-05-22, post-3.0.1)
0x0000008bHardware
Reproducer
location that triggers the fault (same spot every run)
VK_ERROR_DEVICE_LOSTAdding
RADV_DEBUG=nocomputeto the launch options reliably prevents thefault. Without it, crash is 100% reproducible at the same location.
Notes on prior workaround (Proton#9595)
The widely-cited Proton#9595 AMD workaround ("disable ray tracing") does
NOT prevent the underlying GPU fault on this hardware — same fault address,
same ring, same client whether RT is on or off. What RT-off does change is
the consequences: with RT off, MES is able to soft-recover via ring
reset; with RT on, MES wedges and the kernel escalates to MODE1 reset
(VRAM lost, display engine stuck, hard power-cycle required).
Not yet tested on this setup
VKD3D_DISABLE_EXTENSIONS=VK_EXT_descriptor_buffer(the angle from #3056) —happy to test on request
Kernel log — clean ring-reset case (RT off)
Kernel log — MES-wedge case (RT on)
Available on request
/sys/class/drm/card1/device/devcoredump/data) onthe next reproducer run — auto-expires, would need to capture quickly
VKD3D_DISABLE_EXTENSIONS=VK_EXT_descriptor_bufferifuseful