Wrong device address bound checking with Vulkan when using VK_EXT_validation_features with gpu validation enabled

Hi everyone, while developing my Vulkan application I kept getting the error “Device address out of bounds” through the debug callback every time a shader accessed a buffer through a device address. From my findings, the error occurred when the buffer was accessed near the end, specifically when the last valid index was used. (i.e. buffer is 100 bytes, out of bounds error occurs when the buffer is accessed with index 99)

I checked manually and with Nvidia Nsight Graphics and everything was within bounds. Also, I did not get any device lost errors and the graphical output was correct.

I thought it was my mistake, so I modified the Nvidia’s nvpro-samples/vk_raytracing_tutorial_KHR to add GPU assisted validation for the executable vk_ray_tracing__simple_KHR and surprise surprise the same error (Device address out of bounds) was reported through the debug callback.

You can grab a copy of the modified nvpro-samples via my cloned git repo (GitHub - EdoardoLuciani/vk_raytracing_tutorial_KHR: Ray tracing examples and tutorials using VK_KHR_ray_tracing). And remember to execute vk_ray_tracing__simple_KHR as that is the only executable I modified by adding the extension.

OS: Fedora Linux 36
GPU: NVIDIA GeForce RTX 2060 SUPER
Driver version: 510.68.02