Follow-up — two corrections + a version data point.
Reproduced on Proton-Experimental experimental-11.0-20260617 (newest vkd3d, ~16 days newer than
the cachyos-11.0-20260601 build above), heap fix still active (Meta descriptor pressure = 0, no
Xid 31):
NVRM: Xid (PCI:0000:01:00): 32, pid=42319, name=Warhammer3.exe, channel 0x00000016 intr0 00040000
NVRM: Xid (PCI:0000:01:00): 32, pid=42319, name=Warhammer3.exe, channel 0x00000016 intr0 00040000
Two corrections to the original report:
Possibly relevant repro modulator: the fault appears display-path/refresh dependent. On native
DisplayPort monitors at reduced refresh I can play the same campaign for many turns with no Xid;
the fast 1-turn reproductions are all on a 1080p60 TV driven through an HDMI↔DP adapter off the
same GPU. That hints the trigger is present-path / timing-sensitive rather than purely command
content. (I plan to test scanout off a second GPU to isolate this.)
Version note: both my newest vkd3d builds (cachyos Jun-1 and Experimental Jun-17) throw the
byte-identical PBENTRY, so this doesn't look like a recent regression. Bisecting older isn't
useful here — pre-VK_EXT_descriptor_heap builds reintroduce the Xid 31 MMU fault, which kills the
session before this one can surface.
Still happy to provide a full PROTON_LOG, nvidia-smi -q, or test a specific VKD3D_CONFIG capture
flag if there's a way to catch the offending command despite vkd3d not observing the channel loss.
proton experimentalx2 2026-06PROTON_LOGx2 2026-06VKD3D_CONFIGx2 2026-06PROTON_VKD3D_HEAP=1x1 2026-06PROTON_VKD3D_HEAP=1`x1 2026-06PROTON_VKD3D_HEAP=1`,x1 2026-06VKD3D_CONFIG=breadcrumbs`x1 2026-06VKD3D_CONFIG=breadcrumbs`.x1 2026-06PROTON_VKD3D_HEAP=1 %command% -dx12x1 2026-06
Summary
On an RTX PRO 6000 Blackwell Max-Q (96 GB), driver 610.43.02, running Total War: WARHAMMER III in DX12 (vkd3d-proton) with
PROTON_VKD3D_HEAP=1, after an extended session the kernel logs Xid 32 on a single channel and resets it. The GPU survives — no GPU-wide reset, no Xid 56. vkd3d-proton logs nothing: noVK_ERROR_DEVICE_LOST, no device-removed callback — so the offending command cannot be captured withVKD3D_CONFIG=breadcrumbs. The game just stalls and tears down. I'd like guidance on (a) whether vkd3d should detect this, and (b) the correct way to capture the faulting command.Kernel log
intr0 0x00040000= bit 18 =NV_PPBDMA_INTR_0_PBENTRY— an invalid pushbuffer entry (malformed command/control dword in that channel's pushbuffer content, perdev_pbdma.ref.txt). Single channel0x17; the GPU stayed up and only that channel was reset.Environment
cachyos-11.0-20260601v2.7.1-715-geae756358b52bed; vkd3d-proton as bundled in that proton-cachyos buildPROTON_VKD3D_HEAP=1 %command% -dx12—VK_EXT_descriptor_heapconfirmed active in the log (sampler + resource descriptor heaps created)Context — why this only surfaced now
This DX12 path was previously unreachable. In DX11/DXVK the game died almost instantly from a separate descriptor-pressure fault: an Xid 31 MMU fault at a high-dword-corrupted VA (
0x100_00000000), originating in vkd3d'sd3d12_command_allocator_allocate_meta_index"Meta descriptor pressure → global heap" fallback, which fired ~2,000,000 times per session on this 96 GB card.PROTON_VKD3D_HEAP=1(VK_EXT_descriptor_heap) eliminated that completely — pressure2,067,954 → 0, no more Xid 31. With DX12 finally stable, this Xid 32 PBENTRY appeared only after a long session, which is why it looks like a DX12-command-stream issue specific to this title on Blackwell rather than the earlier descriptor problem.Ruled out
0x100,Meta descriptor pressurecount = 0 in this run's log.Questions for maintainers
VK_ERROR_DEVICE_LOST; it just stalls and tears down.VKD3D_CONFIG=breadcrumbsproduces no dump. What is the correct way to capture the offending command for a frozen-channel PBDMAPBENTRYwhen vkd3d never observes the loss — apitrace, a specificVKD3D_CONFIG, a hang/timeout flag, or a debug build?PBENTRYon the WH3 DX12 command stream a known pattern, or likely a vkd3d command-translation issue worth bisecting by version?Repro & next steps
WH3 → DX12 (
-dx12) +PROTON_VKD3D_HEAP=1on proton-cachyos, RTX PRO 6000 Blackwell. Plays a full session, then Xid 32 on one channel. Still pinning the exact scene/action. Planned follow-ups I can provide if useful:0x17is the present/swapchain path (i.e. whether the fault is display-path-dependent).I can attach full
nvidia-smi -q, the completePROTON_LOG, andvulkaninfo --summaryon request.