protonscr

cyberpunk 2077 won't launch

vkd3dopen
HansKristian-Work/vkd3d-proton#2770 · opened 2025-12-26 by nihilx7e3 · updated 2026-01-27 · 5 comments · github
Nnihilx7e3 2025-12-26 github

Software information

cyberpunk 2077 consistently fails to launch on a clean install. launcher works fine but actual game goes to black screen, the game uses around 40% of the cpu, opens an audio stream in pipewire, then the cpu usage goes back down to ~0-2% & the game just stays frozen on a black screen. the REDEngineErrorReporter.exe pops up in processes but no window from it shows, no splash screen or audio plays & game doesn't respond to window close (but does respond to SIGTERM).

proton versions tried (prefix cleaned between all of them):

  • 7.0 - shows crash report window instantly
  • 8.0
  • hotfix
  • experimental
  • GE 10_26

fixes tried:

  • verify integrity
  • reinstall
  • remove all proton related env vars from environment
  • clean proton prefix
  • disable steam overlay
  • launch from both big picture & desktop
  • launch options --launcher-skip -skipStartScreen
  • run with environment variables:
    • VKD3D_CONFIG=no_upload_hvv
    • VKD3D_FEATURE_LEVEL=12_0
    • PROTON_HEAP_DELAY_FREE=1
    • PROTON_ENABLE_NVAPI=0

none of the above help or make a difference. the game consistently fails with VK_ERROR_DEVICE_LOST:

 7345  18675.478:016c:018c:warn:vkd3d-proton:d3d12_device_mark_as_removed: Device 0000000075660080 is lost (reason 0x887a0005, "VK_ERROR_DEVICE_LOST").
     1  18675.478:016c:018c:err:vkd3d-proton:vkd3d_memory_transfer_queue_flush_locked: Failed to submit command buffer, vr -4.
     2  18675.478:016c:018c:warn:vkd3d-proton:d3d12_device_mark_as_removed: Device 0000000075660080 is lost (reason 0x80004005, "Failed to execute pending memory clears.
     3  ").
     4  18675.478:016c:021c:err:vkd3d-proton:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4.
     5  18675.478:016c:021c:warn:vkd3d-proton:d3d12_device_mark_as_removed: Device 0000000075660080 is lost (reason 0x887a0005, "VK_ERROR_DEVICE_LOST").
     6  18675.478:016c:021c:err:vkd3d-proton:vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr -4.
     7  18675.478:016c:021c:warn:vkd3d-proton:d3d12_device_mark_as_removed: Device 0000000075660080 is lost (reason 0x887a0005, "VK_ERROR_DEVICE_LOST").
     8  18675.479:016c:0188:warn:vkd3d-proton:d3d12_device_mark_as_removed: Device 0000000075660080 is lost (reason 0x887a0005, "VK_ERROR_DEVICE_LOST").
     9  18675.479:016c:0188:err:vkd3d-proton:vkd3d_memory_transfer_queue_flush_locked: Failed to submit command buffer, vr -4.
    10  18675.479:016c:0188:warn:vkd3d-proton:d3d12_device_mark_as_removed: Device 0000000075660080 is lost (reason 0x80004005, "Failed to execute pending memory clears.
    11  ").

there's no error from xe or drm in dmesg when this happens

System information

  • GPU: Intel Arc B580
  • Driver: xe
  • Wine version: multiple (see above)
  • VKD3D-Proton version: i'm not sure how to check, whatever version comes with the aformentioned proton versions

Log files

steam-1091500.log

HHansKristian-Work maintainer 2026-01-05 github

This is overwhelmingly likely to be an ANV specific bug, so it should be filed on Mesa issue tracker since it's getting device lost.

Ggprocunier 2026-01-18 github

cp2077-xe-bugreport-2026-01-10.tar.gz

I have the same issue with an Intel ARC A770.

I have a trigger / reproducer and it is related to moving from the 6.17 kernel to the 6.18 kernel. Something changed between these two kernels which breaks vkd3d. I created an issue on the fedora bugzilla, but basically if I want to play Cyberpunk on proton/steam I need to boot my 6.17 kernel or I get this error. I am using the xe driver and not the legacy i915 driver (the legacy driver has terrible performance).

https://bugzilla.redhat.com/show_bug.cgi?id=2428514

EDIT - I included my analysis data

Ggprocunier 2026-01-18 github

Some additional testing today ..

Fedora 43 (KDE Wayland), Intel Arc A770 (DG2)
Kernel 6.17.12 works; 6.18.3/6.18.4/6.18.5 fail with black screen + VK_ERROR_DEVICE_LOST.
Mesa/ANV unchanged across kernels.
swapping to lavapipe (software rendering) works just fine (albeit at 9 fps), suggesting the failure is in the hardware driver stack (Xe/firmware path) via VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.x86_64.json
Proton log shows d3d12_device_mark_as_removed: ... VK_ERROR_DEVICE_LOST and timeline semaphore waits.
Kernel journal shows no explicit xe hang/reset/fault even with debug flags.
debugfs reports wedged_mode=1
Large Xe changes in 6.18 include VM_BIND/madvise/VMA attr work, userptr → gpusvm refactor, TLB invalidation sequencing changes, and late‑bind firmware. These are high‑risk for GPU hangs under D3D12/vkd3d workloads.

kernel commit 6.17.12 -> 6.18.4 bisection on this topic shows these are likely suspects for device-lost hangs:

  • ada7486c5668 drm/xe: Implement madvise ioctl for xe
  • e80b05b09f0e drm/xe: Enable madvise ioctl for xe
  • ce831bffcef3 drm/xe/uapi: Hide the madvise autoreset behind a VM_BIND flag
  • 9a3c0d683419 drm/xe: Retain vma flags when recreating and splitting vmas for madvise
  • 99a89e4e2d0c drm/xe/vm: Add attributes struct as member of vma
  • 29c39c56a08b drm/xe/vma: Modify new_vma to accept struct xe_vma_mem_attr as parameter
  • 186b526abd6c drm/xe/svm: Split system allocator vma incase of madvise call
  • 9e9787414882 drm/xe/userptr: replace xe_hmm with gpusvm
  • 10aa5c806030 drm/gpusvm, drm/xe: Fix userptr to not allow device private pages
  • c1bb69a2e8e2 drm/xe/svm: Consult madvise preferred location in prefetch
  • 7987b93e3a11 drm/xe/svm: Ensure data will be migrated to system if indicated by madvise
  • 15366239e213 drm/xe: Decouple TLB invalidations from GT
  • 8443e8c448cf drm/xe: Add helpers to send TLB invalidations
  • 9aff63cf3791 drm/xe: Prep TLB invalidation fence before sending
  • 918bd789d62e drm/xe/xe_late_bind_fw: Introduce xe_late_bind_fw
  • 67de7982d505 drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late binding
  • 3b09b11805bf drm/xe/guc: Return an error code if the GuC load fails
  • 9f64b3cd051b drm/xe/guc: Check GuC running state before deregistering exec queue
  • 8d9df6d3fa49 drm/xe: Drop preempt-fences when destroying imported dma-bufs
  • c79ee71f4598 drm/pagemap, drm/xe: Ensure that the devmem allocation is idle before use
Ggprocunier 2026-01-19 github

Found this .. seems very likely: https://github.com/intel/compute-runtime/issues/883

Ggprocunier 2026-01-27 github

Issue is resolved in the 6.18.7 kernel and was a result of major regressions in the xe driver.

https://bugzilla.redhat.com/show_bug.cgi?id=2431159

Launch options

Error codes