Hi,
I’m seeing what looks like a driver regression with Vulkan ray query on recent Game Ready drivers, and I wanted to check whether others hit the same thing before I invest in a minimal standalone repro.
Setup
- Custom Vulkan engine (not Unreal/Unity)
- NVIDIA GPU (Windows)
- Vulkan 1.3+ with:
VK_KHR_ray_queryVK_KHR_acceleration_structureVK_EXT_descriptor_heap(bindless resource heap; acceleration structures bound as descriptors and indexed from shaders)VK_KHR_unified_image_layouts
- Fragment shaders use
RayQuery/TraceRayInlineagainst a bindless TLAS (shadow / occlusion style queries). Compute also uses RayQuery in some passes (e.g. AO). - Worlds recreate / grow TLASes when content is loaded and unloaded (editor-style open/close of scenes).
- Khronos validation layers: no validation errors (standard, synchronization, GPU-assisted) leading up to the crash.
- Nsight Aftermath GPU crash dumps available on the failing drivers.
Driver matrix
| Driver | Result |
|---|---|
| 610.88 (latest 610.x I tested) | Stable — I cannot reproduce the crash after extended stress |
| 616.x | Intermittent GPU crash / device lost |
| 617.14 (latest I tested) | Same class of crash |
Same binary, same content, same workflow. Only the driver changes.
Crash behavior (617 / 616)
VK_ERROR_DEVICE_LOST- Aftermath:
Error_DMA_PageFault - Faulted warp is typically a fragment shader doing RayQuery (
Proceed/ traversal), not a random CPU-side assert - Fault addresses are often not any acceleration-structure base I logged. Examples:
0x000000003f800000(IEEE bit pattern for 1.0f)- previously also unmapped / garbage VAs such as
0xc60025000
- Markers at fault time often show render passes that use RayQuery (e.g. translucent / OIT path and ambient occlusion) as active or recently finished
So this does not look like a simple “app freed a buffer and validation missed it” fingerprint; the SM appears to be traversing nonsense addresses during RayQuery.
Nsight Graphics
Nsight Graphics has never been able to capture this application since the current renderer landed. The likely culprits are the newer extensions I enable, especially VK_EXT_descriptor_heap and VK_KHR_unified_image_layouts (alongside ray query / acceleration structures). It fails during Vulkan device creation, before rendering. That has been true across drivers I’ve tried, so I’m treating it as a tooling/extension support gap rather than part of the 610 to 616 crash regression. It does mean I can’t use Nsight to debug the RayQuery page faults on 616+.
Aftermath in-process crash dumps still work when enabled.
What I’m asking
- Are there known RayQuery / descriptor-heap / bindless AS issues on 616+ that were not present on 610.x?
- Is Nsight Graphics expected to support apps that enable
VK_EXT_descriptor_heapandVK_KHR_unified_image_layouts(with ray query) on current drivers, or are device-create failures a known limitation? - Any recommended isolation (e.g. specific extensions,
VK_NV_*diagnostics, or a minimal pattern NVIDIA wants for a bug report)?
I can work on a small headless Vulkan stress sample (bindless TLAS slot + fragment RayQuery + create/destroy/grow loop) and gfxreconstruct captures if that is the preferred path. Shipping the full editor is not practical, but the failure is deterministic enough across drivers that a reduced case should be possible.
Thanks.