Vulkan: GPU breadcrumbs for device-lost diagnosis (NV checkpoints / AMD buffer markers) #136

Open
opened 2026-09-28 02:29:23 +00:00 by backspace119 · 0 comments
Owner

Related: #107, #135.

When the GPU hangs and the device is lost, the CPU-side dump only shows where we noticed (the next fence wait), not which pass hung. Add GPU breadcrumbs:

  • NVIDIA: VK_NV_device_diagnostic_checkpoints — vkCmdSetCheckpointNV at our existing gpuSubMark points (c_cull, c_lights, g_prepass, g_ssao, g_pass1, pass2, p_bloom, p_dof, p_aa, p_final, UI...); on DEVICE_LOST read vkGetQueueCheckpointDataNV and log the last executed/started markers.
  • AMD: VK_AMD_buffer_marker (vkCmdWriteBufferMarkerAMD into a host-visible buffer) with the same marker set.
  • Fallback for other vendors: VK_EXT_device_fault where available (vkGetDeviceFaultInfoEXT).
  • Setting to force it on (cheap; could default on for beta).
  • Output goes into the log so tester logs identify the hanging pass.
Related: #107, #135. When the GPU hangs and the device is lost, the CPU-side dump only shows where we noticed (the next fence wait), not which pass hung. Add GPU breadcrumbs: - NVIDIA: `VK_NV_device_diagnostic_checkpoints` — `vkCmdSetCheckpointNV` at our existing gpuSubMark points (c_cull, c_lights, g_prepass, g_ssao, g_pass1, pass2, p_bloom, p_dof, p_aa, p_final, UI...); on DEVICE_LOST read `vkGetQueueCheckpointDataNV` and log the last executed/started markers. - AMD: `VK_AMD_buffer_marker` (`vkCmdWriteBufferMarkerAMD` into a host-visible buffer) with the same marker set. - Fallback for other vendors: `VK_EXT_device_fault` where available (`vkGetDeviceFaultInfoEXT`). - Setting to force it on (cheap; could default on for beta). - Output goes into the log so tester logs identify the hanging pass.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
backspace119/Slipstream#136
No description provided.