You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add lazytrace option to avoid combinatoric optixTrace inlining (#1815)
OptiX inlines all calls to optixTrace at module compilation time. Due to OSL's
lazy layer evaluation, if layer A calls layer B M times, and layer B calls
layer C N times, that can lead to M*N inlines of optixTrace if layer C contains
a trace operation.
In practice we've observed single trace ops being inlined hundreds of times,
leading to minutes-long shader compilations.
This patch adds a new option, lazytrace, to run layers with trace ops
unconditionally at the start of shader evaluation. This costs some potential
performance in cases where the trace layer would never be evaluated, but
removes all the compilation penalties that the inlining was presenting.
---------
Signed-off-by: Chris Hellmuth <chellmuth@gmail.com>
0 commit comments