Acceleration Structure viewer ignores AABB buffer offsets

Nsight 2021.1.0. ignores offsets when multiple BLASes reference the same AABB geometry buffer with different offsets.

The screen shot shows that the geometry is in the buffer AabbSBO @0.
The offset should not be zero.
In the visualization panel there should be different eight BLASes.
Instead, the 1st BLAS is repeated 8 times (with proper transform).

Rendering and ray query work fine otherwise.

Seems related to Confusing Acceleration Structure Buffer Offsets for VK_KHR_ray_tracing.

Hello,
Thank you for using Nsight Graphics and your feedback. I am sorry you ran into this issue. I have created a bug for our engineering team to investigate.
Regards,

Seems like offsets of acceleration structure in buffers are also ignored.

Hello Philippe – Thanks for the bug report! To make sure we are on the page I’m guessing you are:

  1. Using the Vulkan KHR_ray_tracing extension
  2. Using shallow geometry copies (default Nsight option)
  3. Using primitiveOffset from VkAccelerationStructureBuildRangeInfoKHR for AABBs (opposed to manually offsetting the buffer address)

If so, I did find that we were mistakenly ignoring the primitiveOffset factor for AABBs (triangles were OK).

This has been addressed and will be available in the upcoming 2020.2 release.

image

Additionally, there are a few work arounds in the 2020.1 build you could try:

  1. The “deep copy” mode (under Nsight’s ray tracing options) does respects this offset
  2. If you could instead add the offset to the aabBuffer device address for the same effect; Nsight will respect that.

The main AS offset was addressed as well for the KHRv11 extension.

-Kyle

Hi Kyle,

You are correct on all counts with your guesses: I do use KHR_ray_tracing and primitiveOffset.

Switching to “deep copy” mode fixed the geometry display.
Textual information still refers to @ 0 but that is not a big issue.

And thanks for the tip about offsetting addresses directly. Was not aware one could do that.

Philippe.