Optix7 optixPathTracer sample won't run with latest driver 441.20

Just a heads up that the Optix7 optixPathTracer sample will not run out of the box after updating to the latest driver 441.20. There was no problem when using driver version 436.48

[ 2][ ERROR]: Multi-level graphs are disabled but “maxTraversableGraphDepth” is larger than 2
Caught exception: OPTIX_ERROR_INVALID_VALUE: Optix call ‘optixPipelineSetStackSize( state.pipeline, direct_callable_stack_size_from_traversal, direct_callable_stack_size_from_state, continuation_stack_size, max_traversal_depth )’ failed: C:\ProgramData\NVIDIA Corporation\OptiX SDK 7.0.0\SDK\optixPathTracer\optixPathTracer.cpp:853)

I’m not sure if this is the correct fix but I got it working by changing the traversableGraphFlags to OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_ANY on line 678 of optixPathTracing.cpp
//state.pipeline_compile_options.traversableGraphFlags = OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_SINGLE_GAS;
state.pipeline_compile_options.traversableGraphFlags = OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_ANY;

Windows10 Home
Version 1809(OS Build 17763.805)

Geforce RTX 2070 Super
Driver version 441.20


CUDA version 10.1

Microsoft Visual Studio Community 2019
Version 16.3.3

try to change line 845 in the pathtracer example.
please check out this answer:

1 Like

Thanks I didn’t see that.

Shouldn’t the error message be Multi-level graphs are disabled but “maxTraversableGraphDepth” is larger than 1 instead of 2? Setting max_traversal_depth = 2 doesn’t work either.

That message would not be precise enough.
Dual-level traversal selected with OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_SINGLE_LEVEL_INSTANCING is a special case with a IAS->GAS scene structure and that requires maxTraversableGraphDepth = 2 in optixPipelineSetStackSize().
That structure is a fully hardware supported case in the Turing RT cores when used with triangles.

Multi-level is really more than two levels, so things like IAS->IAS->GAS.
The OptiX 7 optixPathTracer actually only uses a single GAS.