protonscr

Borderlands 4: reproducible GPU page fault in FSR submission path on Navi31 / RX 7900 XTX

vkd3dopen
HansKristian-Work/vkd3d-proton#3034 · opened 2026-05-16 by NTMan · updated 2026-05-18 · 4 comments · github
NNTMan 2026-05-16 github

Got three GPU hangs in Borderlands 4 over the last few days. Each required a reboot since the kernel runs with amdgpu.gpu_recovery=0 for unrelated debugging.

Last hang from Proton log:

6220.523:016c:0180:fixme:dwmapi:DwmGetWindowAttribute DWMWA_CLOAKED: always returning 0.
6220.524:016c:0180:fixme:eventlog:QueryAllTracesW (00000000AE8F0000, 64, 000000000404FC30) stub
6221.273:016c:0180:fixme:dwmapi:DwmGetWindowAttribute DWMWA_CLOAKED: always returning 0.
6221.274:016c:0180:fixme:eventlog:QueryAllTracesW (00000000AE8F0000, 64, 000000000404FC30) stub
6222.023:016c:0180:fixme:dwmapi:DwmGetWindowAttribute DWMWA_CLOAKED: always returning 0.
6222.025:016c:0180:fixme:eventlog:QueryAllTracesW (00000000AE8F0000, 64, 000000000404FC30) stub
radv/amdgpu: The CS has been cancelled because the context is lost. This context is guilty of a hard recovery.
radv: GPUVM fault detected at address 0x80002dcdf000.
GCVM_L2_PROTECTION_FAULT_STATUS: 0x401431
	 CLIENT_ID: (SQC (data)) 0xa
	 MORE_FAULTS: 1
	 WALKER_ERROR: 0
	 PERMISSION_FAULTS: 3
	 MAPPING_ERROR: 0
	 RW: 0
6222.218:016c:0208:err:vkd3d-proton:d3d12_command_queue_execute: Failed to submit queue(s), vr -4.
6222.218:016c:0208:warn:vkd3d-proton:d3d12_device_mark_as_removed: Device 000000001dc80080 is lost (reason 0x887a0005, "VK_ERROR_DEVICE_LOST").

Different scene, different faulting VA each time, same fault signature otherwise:

Field Hang 1 Hang 2 Hang 3
Faulting VA 0x800046200000 0x8000176b2000 0x80002dcdf000
FAULT_STATUS 0x601431 0x601431 0x401431
CLIENT_ID SQC (data) 0xa SQC (data) 0xa SQC (data) 0xa

I tried reproducing each hang by reloading a save and walking through the same scene — no crash. Hangs happen after ~30-70 min of play, seemingly independent of what's on screen.

~2 sec before the last hang there's a burst of these:

6219.881:016c:022c:warn:vkd3d-proton:d3d12_resource_SetName: FSR resource detected. Forcing retained GPU reference to work around broken integration code in either game or UE5.
6219.881:016c:022c:warn:vkd3d-proton:d3d12_resource_SetName: FSR resource detected. Forcing retained GPU reference to work around broken integration code in either game or UE5.
6219.882:016c:022c:warn:vkd3d-proton:d3d12_resource_SetName: FSR resource detected. Forcing retained GPU reference to work around broken integration code in either game or UE5.
...

28 of them within ~11 ms. Don't know if related — same bursts happen during normal play too without crashing.

Logs and kernel devcoredumps attached: borderlands4-vkd3d-hang.zip

Environment

  • vkd3d-proton 3.0.1 (build 64f5776fdb330ab)
  • Proton Experimental 11.0-20260506b
  • Mesa master @ 46cd7b6e28e457447f2179f8dbf5fcfd73363874
  • kernel 7.1.0-rc2 (custom, amdgpu.gpu_recovery=0)
  • AMD Radeon RX 7900 XTX (Navi31, gfx1100)
KK0bin 2026-05-16 github

Does it also hang if you disable FSR? Or are you coming to that conclusion purely based on the log?

HHansKristian-Work maintainer 2026-05-16 github

Try with VKD3D_CONFIG=retain_descriptor_heaps. Also, the LLM spam is not necessary. It's just hallucinating complete garbage. I stopped reading after

radv/amdgpu: The CS has been cancelled because the context is lost.
             This context is guilty of a hard recovery.
radv: GPUVM fault detected at address 0x80002dcdf000.
GCVM_L2_PROTECTION_FAULT_STATUS: 0x401431
	 CLIENT_ID: (SQC (data)) 0xa
	 MORE_FAULTS: 1
	 WALKER_ERROR: 0
	 PERMISSION_FAULTS: 3
	 MAPPING_ERROR: 0
	 RW: 0
HHansKristian-Work maintainer 2026-05-18 github

This issue is most likely resolved now on master.

NNTMan 2026-05-18 github

Played ~30 hours with VKD3D_CONFIG=retain_descriptor_heaps, zero hangs.
Hit ~470 FSR resource warnings across 11 separate bursts in that time, so the workaround clearly covers the cases that were breaking before.

Side observations:

  • No measurable FPS impact in heavy combat scenes (still ~13-30 FPS in the most demanding fights, same as before, so the bottleneck stays in the game/VRAM pressure).
  • Resume after Alt-Tab / GNOME Activities is noticeably faster — first frame after return is interactive, where previously there was a short stutter.

steam-1285190.zip

Proton versions

Launch options

Error codes