+1 same issue with Stellar Blade, Neverness to Everness and Wuthering Waves
all games have the same errors and dmesg driver logs, the pid= and name= are only different
forza horizon 6 for example works amazing with descriptor heap
[ 2056.336781] NVRM: Xid (PCI:0000:26:00): 31, pid=23377, name=HTGame.exe, channel 0x0000001f, intr 00000000. MMU Fault: ENGINE GRAPHICS GPC0 GPCCLIENT_GCC faulted @ 0x8_00004000. Fault is of type FAULT_PDE ACCESS_TYPE_VIRT_READ
[ 2056.340223] NVRM: Xid (PCI:0000:26:00): 31, pid=23377, name=HTGame.exe, channel 0x0000001e, intr 00000000. MMU Fault: ENGINE GRAPHICS GPC2 GPCCLIENT_GCC faulted @ 0x2_0010d000. Fault is of type FAULT_PDE ACCESS_TYPE_VIRT_READ
[ 2056.344425] NVRM: Xid (PCI:0000:26:00): 31, pid=23377, name=HTGame.exe, channel 0x0000002c, intr 00000000. MMU Fault: ENGINE GRAPHICS GPC0 GPCCLIENT_GCC faulted @ 0x0_00000000. Fault is of type FAULT_PDE ACCESS_TYPE_VIRT_READ
edit: as of proton-cachyos-11.0-20260521-slr forza horizon 6 crashes too
[ 3115.642284] NVRM: Xid (PCI:0000:26:00): 32, pid=1865, name=forzahorizon6.e, channel 0x0000002d intr0 00040000
[ 3115.643768] NVRM: Xid (PCI:0000:26:00): 32, pid=1865, name=forzahorizon6.e, channel 0x0000002d intr0 00040000
[ 3231.785265] NVRM: Xid (PCI:0000:26:00): 13, Graphics Exception: SKEDCHECK23_CONSTANT_BUFFER_SIZE failed
[ 3231.786401] NVRM: Xid (PCI:0000:26:00): 13, Graphics Exception: ESR 0x407020=0x80 0x407028=0x0 0x40702c=0x367e01 0x407030=0x0
[ 3231.787736] NVRM: Xid (PCI:0000:26:00): 13, pid=3523, name=forzahorizon6.e, Graphics Exception: channel 0x00000029, Class 0000c7c0, Offset 00000000, Data 00000000
steamlog pretty much the same as other games with err:vkd3d-proton:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4. and VK_ERROR_DEVICE_LOST
yeah, reverting to 595.x fixes the forza crash with desc heap, nvidia issue 100%, though the game didn't crash on 610 yesterday, it was only after the proton ver got updated
yeah, reverting to 595.x fixes the forza crash with desc heap, nvidia issue 100%, though the game didn't crash on 610 yesterday, it was only after the proton ver got updated
Do you get an Xid 109 at 100% GPU usage still with that driver, or was that now fixed?
(Sorry for the off-topic talk)
I have the same error:
[ 9069.273788] NVRM: Xid (PCI:0000:01:00): 31, pid=72964, name=GameThread, channel 0x00000039, intr 00000000. MMU Fault: ENGINE GRAPHICS GPC0 GPCCLIENT_GCC faulted @ 0x0_00000000. Fault is of type FAULT_PDE ACCESS_TYPE_VIRT_READ
Driver 610.43.02
Tested proton-cachyos-slr-11.0-20260521, 20260520, 20260506 and even older proton-cachyos-slr-11.0-20260429.
Nvidia RTX 3080 8GB VRAM laptop
Added VKD3D_CONFIG=descriptor_heap to launch options
Tested even with proton-cachyos-11.0-20260429 version when on previous drivers I had performance boost (~100 fps with Framegen in first town) with descriptor heap. It does not crash with only PROTON_VKD3D_HEAP=1 but doesn't give performance boost.
In Proton logs:
9227.051:0144:0148:info:vkd3d-proton:vkd3d_config_flags_init_once: VKD3D_CONFIG='descriptor_heap'.
9227.569:0144:0148:info:vkd3d-proton:vkd3d_bindless_state_init_heap: VK_EXT_descriptor_heap enabled (32 / 32 size, raw uav counter on).
9258.101:0144:02b4:err:vkd3d-proton:d3d12_device_validate_shader_meta: Required WaveSize range [64, 64], but supported range is [32, 32].
And when hangs and game crash occurred:
11816.691:0148:0228:err:vkd3d-proton:d3d12_command_queue_execute: Failed to submit queue(s), vr -4.
11816.691:0148:0224:err:vkd3d-proton:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4.
proton-cachyos-slr-11.0-20260521 with VKD3D_CONFIG=descriptor_heap also crashed Japanese Drift Master few seconds in main menu.
Reverting drivers to 595.71.05 fixed hangs in Stalker 2 and JDM so the newest drivers broke descriptor heap (at least in those Unreal Engine titles I've tested).
yeah, reverting to 595.x fixes the forza crash with desc heap, nvidia issue 100%, though the game didn't crash on 610 yesterday, it was only after the proton ver got updated
Do you get an Xid 109 at 100% GPU usage still with that driver, or was that now fixed?
(Sorry for the off-topic talk)
haven't noticed it on my end
So, I've decided to do at least some of the legwork and see if I can narrow down which vkd3d-proton commit broke descriptor heap with the 610 drivers. I haven't gotten that far, but what I have checked is which of the builds from master still work... the answer is all of them but the very last one. I've grabbed literally the previous artifact from https://github.com/HansKristian-Work/vkd3d-proton/actions/runs/26635336889 and Horizon 6 runs perfectly fine with descriptor_heap on. Several other slightly older builds also work.
Same issue in The Alters with descriptor_heap enabled and NVIDIA 610. The game loaded the map and spawned the character, and was playable for ~5 seconds before the crash, but some textures were completely missing from the map.
Same issue in Pragmata.
[ 8737.153388] NVRM: Xid (PCI:0000:01:00): 31, pid=81050, name=PRAGMATA.exe, channel 0x00000019, intr 00000000. MMU Fault: ENGINE GRAPHICS GPC1 GPCCLIENT_GCC faulted @ 0x0_00000000. Fault is of type FAULT_PDE ACCESS_TYPE_VIRT_READ
I went back to it, and isolated the specific commit that breaks Horizon 6 with the 610 drivers. It's the one that enables the workarounds for the game: 27b05b8. Even more specifically, disabling forza6_quirks in libs/vkd3d/device.c in master resolves the immediate crash with descriptor_heap. 🤔
The code that it enables is this:
static const struct vkd3d_shader_quirk_info forza6_quirks = {
NULL, 0,
/* Tons of OOB access in RT, even for sampler heap.
* Also, lots of missed nonuniformEXT in RT, so force that ... */
VKD3D_SHADER_QUIRK_DESCRIPTOR_HEAP_ROBUSTNESS | VKD3D_SHADER_QUIRK_FORCE_NONUNIFORM_RT,
};
Which makes me think there's a bunch of different things going on here, as this isn't applied to any other games in this thread.
I went back to it, and isolated the specific commit that breaks Horizon 6 with the 610 drivers. It's the one that enables the workarounds for the game: 27b05b8. Even more specifically, disabling forza6_quirks in
libs/vkd3d/device.cin master resolves the immediate crash with descriptor_heap. 🤔The code that it enables is this:
static const struct vkd3d_shader_quirk_info forza6_quirks = { NULL, 0, /* Tons of OOB access in RT, even for sampler heap. * Also, lots of missed nonuniformEXT in RT, so force that ... */ VKD3D_SHADER_QUIRK_DESCRIPTOR_HEAP_ROBUSTNESS | VKD3D_SHADER_QUIRK_FORCE_NONUNIFORM_RT, };Which makes me think there's a bunch of different things going on here, as this isn't applied to any other games in this thread.
git bisect I'm assuming?
Marvel Rivals gets an Xid 31 on heap too so I can try verifying this with my own git bisect later.
https://dawn.wine/dawn-winery/dwproton/issues/11
might be relevant
Icarus's DX12 mode, which otherwise works infinitely better with the descriptor_heap fixes on my 4070 Super, hangs and crashes.
Hello, this issue has been root-caused to the driver. A fix will be included in a future driver release.
Please note that this applies only to errors ending in FAULT_PDE ACCESS_TYPE_VIRT_READ that affect pre-Blackwell GPUs. Other descriptor heap-related issues are still being investigated.
Edit: Thanks for reporting and bisecting the problem.
On nvidia driver 595.84 the issue should be fixed (works for me)
On nvidia driver
595.84the issue should be fixed (works for me)
595.80 also works but that's 595 branch. This issue is about 610 branch which, aside from this bug, has far better heap performance on paper.
EDIT: And hopefully a new 610 driver with this bug fixed releases.
I also had the issue on 595 vulkan beta, so there might be a mixup from my side there. Hopefully there will be a 610 release soon.
So at least Helldivers is doing a smart thing and reverting back to descriptor buffer, but yes this does sadly appear to be an nvidia driver problem. Hopefully they fix it soon.
The Nvidia 610.43.03 driver released today still has the Xid 31 issue for me
Shloud have been fixed on 610.57.04: https://www.nvidia.com/en-us/drivers/details/274513/
Can confirm that 610.57 fixes the problem.
Thought I'd chime in and report Marvel Rivals (which was also affected by this bug) is now fixed. Safe to say all affected Unreal Engine 5 games now run on the latest 610 driver.
UPDATE: Forza Horizon 6 also works now which makes the game fully playable with Heaps on 610 branch. (The game seems to require heap as it otherwise Xid 109s very fast without it)
Same issue in The Alters with
descriptor_heapenabled and NVIDIA 610. The game loaded the map and spawned the character, and was playable for ~5 seconds before the crash, but some textures were completely missing from the map.
Can also confirm The Alters now works fine with descriptor heap and 610.57.04. Sadly the performance is identical to the previous heap path.
proton experimentalx1 2026-05VKD3D_SHADER_QUIRK_DESCRIPTOR_HEAP_ROBUSTNESSx2 2026-06VKD3D_SHADER_QUIRK_FORCE_NONUNIFORM_RTx2 2026-06PROTON_VKD3D_HEAP=1x1 2026-05VKD3D_CONFIG='descriptor_heap'x1 2026-05VKD3D_CONFIG=descriptor_heapx1 2026-05VKD3D_CONFIG=descriptor_heap`x1 2026-05
Running STALKER 2 with
VKD3D_CONFIG=descriptor_heapcrashes with "device lost" style errors from VKD3D-P and game logs, with the following log line in dmesg:The crash doesn't happen at exactly the same moment between runs: sometimes it's on the loading screen, others I'm able to get into a game and it will run for a few seconds. But it always happens within the first 30 seconds for me at the worst.
I'm guessing this might depend on the scene, so I can provide a safe file in case it doesn't repro.
Possibly related to #2981, same error in another UE5 game
Software information
Running high/epic graphics settings, no DLSS, but Nvidia Reflex is on.
I've tested this on commit
110e8bd4ee09c40031f5513258a10df59d27fd94, with whatever was in the build of Proton Bleeding edge on May 28th, and also8f7d2e7a991b1b14a80eab993d97f8bddc4011abper developer request. Crash occurs the same way in all of them.System information
110e8bd4ee09c40031f5513258a10df59d27fd94Log Files
steam-1643320.log