Vulkan: GPU breadcrumbs for device-lost diagnosis (NV checkpoints / AMD buffer markers) #136
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#136
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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:
VK_NV_device_diagnostic_checkpoints—vkCmdSetCheckpointNVat 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 readvkGetQueueCheckpointDataNVand log the last executed/started markers.VK_AMD_buffer_marker(vkCmdWriteBufferMarkerAMDinto a host-visible buffer) with the same marker set.VK_EXT_device_faultwhere available (vkGetDeviceFaultInfoEXT).Done: GPU breadcrumbs are in (NV device-diagnostic checkpoints / AMD buffer markers). The log prints which one is active (
[vkgfx] GPU breadcrumbs: ...), and gpuSubMark/gpuTimerMark drop a crumb per pass.