protonscr

KCD2: GPU VA space exhaustion on RTX 5060 (Blackwell) - intermapRegisterDmaMapping failures causing freeze after ~1hr

vkd3dopen
HansKristian-Work/vkd3d-proton#2876 · opened 2026-03-13 by NullMK · updated 2026-03-13 · 2 comments · github
NNullMK 2026-03-13 github

System Information

  • GPU: NVIDIA GeForce RTX 5060 8GB (Blackwell architecture)
  • Driver: 580.126.09 (Open Kernel Module)
  • Vulkan: 1.4.312
  • VKD3D-Proton: 3.0b
  • Proton: GE-Proton10-32
  • OS: Nobara Linux 43
  • Kernel: 6.19.2
  • CPU: AMD Ryzen 5 3600X
  • RAM: 32GB
  • Game: Kingdom Come: Deliverance II (build 1127998, version 1.5.3, MasterMasterSteamPGO)

Description

KCD2 freezes (not crashes) after approximately 1 hour of gameplay. The game hangs
indefinitely — the process stays alive but the screen is frozen and the game becomes
unresponsive. Only a hard kill recovers the system.

This is reproducible regardless of graphics settings (tested Medium and lower Global
Illumination). Related to issue #2718 but differs in that it occurs at Medium GI
settings and manifests as a slow accumulation over ~1 hour rather than an immediate
freeze.

Does NOT occur on Windows with identical hardware.

Root Cause (from diagnostic logs)

GPU Virtual Address space exhaustion. VRAM mappings accumulate over ~1 hour and
are never released. Once the VA space is exhausted the NVIDIA driver fails to create
new mappings, VKD3D timeline semaphores never signal, and the game hangs waiting
for GPU work that can never complete.

VRAM grows from ~5GB at session start to ~7.2GB+ (out of 8GB total) at time of freeze,
with only ~14MB free — despite sys_budget_videomem being set to 6656MB in game config.
The overshoot confirms the leak is in VKD3D/driver resource mappings outside the game's
own budget tracking.

dmesg at time of freeze

NVRM: Xid (PCI:0000:0a:00): 69, pid=15513, name=Main, Class Error: channel 0x0000001b, Class 0000ce97, Offset 00001e10, Data 00001010, ErrorCode 00000005
intermapRegisterDmaMapping: Failed to insert new mapping node
gpu_vaspace.c: NV_OK == status assertion failed

Previous sessions also showed:

NVRM: Xid 69, ErrorCode 0x0c (illegal memory access)
NVRM: Xid 69, ErrorCode 0x04 (GPU MMU page fault)

Note: Class 0000ce97 is an Ampere-generation compute engine class being issued to a
Blackwell GPU — possible class mismatch in VKD3D command generation for Blackwell.

VKD3D log at time of freeze

vkd3d_wait_for_gpu_timeline_semaphore: Failed to wait for Vulkan timeline semaphore, vr 2.

vr 2 = VK_ERROR_DEVICE_LOST

nvidia-smi at time of freeze

memory.used: 7248 MiB
memory.free: 456 MiB
memory.total: 8151 MiB

VKD3D_CONFIG used

VKD3D_CONFIG=no_dynamic_resources,no_upload_hvv,force_host_cached

force_host_cached was added specifically to target ErrorCode 0x04 (MMU page fault)
and did reduce frequency of that specific error but did not resolve the VA space
exhaustion.

Additional notes

  • Does NOT occur on non-Blackwell hardware (confirmed: RTX 3060 on identical software
    stack has no issues — see also #2718)
  • Does NOT occur on Windows
  • Distro-independent: personally reproduced on Nobara and CachyOS; Bazzite also
    confirmed affected per #2718
  • Session duration before freeze: consistently ~1 hour regardless of GI settings
  • TotalCrashCount in BugSplat reports: 10 crashes across 45 launches
  • Separate WHGame.dll ACCESS_VIOLATION crashes (0xC0000005 at WHGame+0x500c30
    and WHGame+0x645839) also occur independently of the GPU freeze — these appear
    to be a game engine threading bug unrelated to VKD3D
Ddoitsujin maintainer 2026-03-13 github

is there any DLSS or other Cuda stuff at work here? There's some known issues in that area, but this whole thing just seems firmly outside our control, especially if it's specific to Blackwell for some reason.

NNullMK 2026-03-13 github

I have tested DLSS, FSR 3.1 and without any upscaling, the game would still crash no matter to what upscaling I set it to. In addition to that, no matter to which Proton version I set it to, it would still crash.

Proton versions

Launch options

DLLs

Error codes