VK_NV_raytracing: VK_DEVICE_LOST with large data sets

I get a VK_DEVICE_LOST after i tried to build a rather large custom geometry set with vkCmdBuildAccelerationStructureNV. The set contains about 33 million AABBs, the acceleration structure is about 1.3GB and requires 2.2GB scratch memory to build. But i did make sure that enough VRAM was available to complete the operation. All of them are in a single geometry object. According to the device property limits, i could have up to about 500 million triangles if i had enough memory. I assume the same limit applies to custom AABBs. Is this a driver/GPU bug or is there some other limit i have run against?


Win7 x64
RTX 2070 8GB
Driver 417.63
MSVC 15.9.6

May be execution timeout

No, i’ve seen execution timeouts before, this one crashes instantly. Also i used Nsight monitor to increase the delay from 2 seconds to 10 on my system.

I was able to build the data by splitting the AABBs into around 31 geometries with 1 million AABBs each, still building into a single acceleration structure. It renders just fine with that. So this is either a device limit that is not exposed or a driver bug.



For us to reproduce the issue and check the corresponding Vulkan driver behavior, can you provide a minimum repro application?

I’ve just tested this again and it seems to be fixed with driver 419.09.
The other bugs i found are still present though:

  1. The update scratch size is 0 for compacted AS, but they do use scratch space to update
  2. The sbtRecordOffset parameter of traceNV ignores everything but the lowest 4 bits
  3. Any vkCmdDispatch after a vkCmdTraceRaysNV in the same frame results in device loss, but only in fullscreen

The third one is only reproducible most of the time, it does work in rare occasions.
If you need any further info from me to fix any of these three, i’ll try to help.


can you provide the minimum application and the repro instruction?