protonscr

VK_ERROR_DEVICE_LOST in Cyberpunk 2077 photo mode with GPU descriptor heap enabled

vkd3dopen
HansKristian-Work/vkd3d-proton#2979 · opened 2026-05-03 by jettoblack · updated 2026-05-03 · 0 comments · github
Jjettoblack 2026-05-03 github

Cyberpunk 2077 hangs with VK_ERROR_DEVICE_LOST when taking a photo in photo mode while GPU descriptor heap support is enabled via PROTON_VKD3D_HEAP=1. The game is 100% stable during normal gameplay both with and without the descriptor heap support enabled; the crash is specific to pressing spacebar to capture a photo in photo mode with heap support enabled.

System configuration

Component Details
CPU AMD Ryzen 9 9950X 16-Core (32 threads)
GPU NVIDIA GeForce RTX 5090
Driver NVIDIA 595.71.05
OS CachyOS
Kernel 7.0.2-2-cachyos (x86_64)

The crash reproduces across multiple proton-cachyos releases & vkd3d-proton builds, including:

  • cachyos-10.0-20260420-slr / Proton Experimental 10.0-20260407 / vkd3d-proton 2889f1c8
  • cachyos-11.0-20260428-slr / Proton Experimental 11.0-20260428 / vkd3d-proton 790cfc68

Steps to reproduce

  1. Install Cyberpunk 2077
  2. Use proton-cachyos (tested with cachyos-10.0-20260420-slr and cachyos-11.0-20260428-slr)
  3. Set launch options / environment: PROTON_VKD3D_HEAP=1
  4. Launch game, load a save, enter photo mode
  5. Press spacebar to take a photo
  6. Graphics hang immediately — display freezes, audio continues playing

journalctl at the moment of the hang:

May 02 13:34:54 cachyzen kernel: NVRM: Xid (PCI:0000:01:00): 31, pid=271667, name=Cyberpunk2077.e, channel 0x00000044, intr 00000000. MMU Fault: ENGINE GRAPHICS HUBCLIENT_FE faulted @ 0x0_0aca1000. Fault is of type FAULT_PTE ACCESS_TYPE_VIRT_WRITE

Proton log

Maybe related: shortly before the crash, the log shows repeated ClearUnorderedAccessViewUint calls with heap invalidation warnings:

87018.032: d3d12_command_list_ClearUnorderedAccessViewUint: ClearUAVUint called without active heap.
87018.032: d3d12_command_list_invalidate_descriptor_heap: Invalidating descriptor heap due to meta command which is incompatible with heaps.

Maybe related: this is just .06s before the hang:

87018.118: d3d12_command_allocator_Release: Released all public references, but there are still 1 pending command lists awaiting execution from command allocator iface 0000000000cef0a0! Deferring release.

Then the hang:

87018.180: d3d12_device_mark_as_removed: Device 0000000129330080 is lost (reason 0x887a0005, "VK_ERROR_DEVICE_LOST").
87018.180: vkd3d_memory_transfer_queue_flush_locked: Failed to submit command buffer, vr -4.
87018.180: d3d12_device_mark_as_removed: Device 0000000129330080 is lost (reason 0x80004005, "Failed to execute pending memory clears.").
87018.181: d3d12_command_queue_flush_waiters: Failed to submit semaphore waits, vr -4.
87018.181: vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4.

The game continued running (audio kept playing) after the graphics hang. I had to kill the process.

Log file (this is the newer proton 11 run, lmk if you want the proton 10 one too):

steam-1091500_heap1_photo_proton11.zip

Proton versions

Launch options

Error codes