Problem with "prefer fast built"

In the video (of Fall GTC) referenced in this post:

on “Curve Adaptive Splitting” for the flags
OPTIX_BUILD_FLAG_PREFER_FAST_TRACE and OPTIX_BUILD_FLAG_PREFER_FAST_BUILD
as exception only this flag :
OPTIX_BUILD_FLAG_ALLOW_UPDATE is specified and nothing on them in the docs https://raytracing-docs.nvidia.com/optix7/api/group__optix__types.html#ggaff328b8278fbd1900558593599698bbaa8c5c4821c95f08d6894b6a69024e1dc3

I tried out both “Curve Adaptive Splitting” settings on curves in my OptiX7.4-based Win10-App using OPTIX_BUILD_FLAG_ALLOW_COMPACTION.

With OPTIX_BUILD_FLAG_PREFER_FAST_TRACE everything succeeds,

but when using OPTIX_BUILD_FLAG_PREFER_FAST_BUILD
in OptixAccelBuildOptions.buildFlags on creating a GAS it fails
in both cases (with and without compaction):
[2][ERROR]: Error recording event to prevent concurrent launches on the same OptixPipeline (CUDA error string: misaligned address, CUDA error code: 716)
Error recording resource event on user stream (CUDA error string: misaligned address, CUDA error code: 716)
Optix call (optixLaunch( state.pipeline, state.stream, reinterpret_cast(state.d_params), sizeof(Params), &state.sbt, (int)image_width, (int)image_height, 1 )) failed with code 7900 (line 6884)

But if flag OPTIX_BUILD_FLAG_PREFER_FAST_BUILD is not set, then it succeeds
with and without compaction.

Is this a limitation ? or maybe its a misconception in my code?

With “succeed” I mean, that the intersection types linear, quadratic, and cubic build, run and give same visual output as on OptiX 7.3.0 (yet I only use test colors)

Thank you.

My System: OptiX 7.4.0 SDK CUDA 11.4.3 GTX 1050 2GB Win10PRO 64bit (version 21H1; build 19043.1237) 8GB RAM device driver: 512.15 VS2019 v16.11.13 (toolkit v142) MDL SDK 2020.1.2 Windows SDK 10.0.19041.0

The problem you’re encountering is most likely due to a mismatch in the build flags in OptixAccelBuildOptions and those in OptixBuiltinISOptions. What makes this tricky is, that you can get away with some inconsistencies, but when FAST_BUILD is involved, things must be consistent between the two places where those flags are passed.

The programming guide has marginally more info on this in section 5.4 (https://raytracing-docs.nvidia.com/optix7/guide/index.html#acceleration_structures#build-flags) than the reference docs. I’ll bring it up with the documentation folks to see if we can improve this.

1 Like

Thank you very much !!!
This works immediately for a quick test.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.