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

OPTIX_VERSION 70000

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:
https://devtalk.nvidia.com/default/topic/1066486/optix/optix-7-examples-error/post/5401320/#5401320

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.

https://devtalk.nvidia.com/default/topic/1066928/optix/leveraging-rtx-hardware-capabilities-with-optix-7-0/