Lately I encountered (on a modified version of my pathtracer project, which architecture is based on the OptiX Apps 2018 samples) this validation error:
[ERROR]: Validation mode caught builtin exception OPTIX_EXCEPTION_CODE_TRAVERSAL_INVALID_HIT_SBT
The online doc says:
[…]The traversal hit SBT record index out of bounds.[…]
I did not find one post here in the forum about this validation error and nothing on the search engine.
So it took me quite a while to figure out, how that error could happen.
After searching a lot in my SBT setup without finding any error, I checked the pipeline settings.
I use Hair Curves OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CATMULLROM, and all the GAS / IAS settings seemed to be ok, but I did not set the OptixPipelineCompileOptions.usesPrimitiveTypeFlags. It was zero. That caused it!
The pipeline settings did not match the OptiX 7.1 Curve Primitive GAS
primitive_input.type = OPTIX_BUILD_INPUT_TYPE_CURVES; settings.
and builtinISOptions.builtinISModuleType was also not set in my code due to respecting the invalid pipleline setting.
So the validation correctly told me, that something was wrong, but it was wrong in the pipeline and the inbuilt IS functions were missing but nothing wrong in the SBT-related code.
Please improve the validation messages for such cases!
Project circumstances where I encountered it: see this post
OptiX 7.6.0 SDK
GTX 1050 2GB
Win10PRO 64bit (version 21H1; build 19043.1237)
device driver: 526.47 VS2019 v16.11.17 (toolkit v140 of VS2015)
MDL SDK 2020.1.2
Windows SDK 10.0.19041.0