Drivers issues with OptiX

Hello. Our render engine uses OptiX (7.5 now, 7.2 in a previous version). That previous version worked fine, but at certain point (first months of the year) a new NVIDIA driver made our engine throw optix errors. We started to investigate this weeks ago and it seems that a newer NVIDIA driver make things come back to normal behaviour. Installing/uninstalling NVIDIA drivers is a really painful process in windows so I cannot give which driver version started to make our engine fail. I cannot give the driver version which fixed this either. So my question is:

It is expected that future NVIDIA driver versions can break “old” OptiX (i.e. 7.2, 7.5) implementations?

It is not expected that newer display driver versions break older OptiX 7 versions.

The OPTIX_ABI_VERSION against which an application was compiled defines the OptixFunctionTable contents which in turn defines the version-specific OptiX API, so backward compatibility of the display drivers to older OptiX SDK versions is taken care of.

Though there is always a possibility that changes inside either the OptiX module or the underlying raytracing module of the display drivers affect how things work for any OptiX version, but always with the intent to improve the functionality and performance, not to break them.

Most changes usually happen between display driver branches and your description matches the timeframe of the R530 driver releases which in fact had some internal OptiX specific functionality changes, unrelated to the API itself, which inadvertently affected debugging and printf output. You’ll find related problem reports on this OptiX forum.

If you experience any issues with specific display driver versions, we would of course be interested to know about them as quickly as possible to be able to work with you on solving any such problem you encounter.

For that please contact us either via this developer forum or, when confidentiality is required, via private messages on this forum or the OptiX-Help email address you’ll find at the bottom of the OptiX download site.

To be able to file bug reports, we need as much information about the system configuration and the reproducer as possible, including:
OS version, installed GPU(s), VRAM amount, display driver version, OptiX SDK version (major.minor.micro), CUDA Toolkit version used to generate the input code, host compiler version.

Just a minor note to dovetail with Detlef’s answer: so far the single most common cause of new drivers leading to errors or changes in behavior is when people don’t fully initialize their OptiX structs in a way that protects against the addition of new struct members. Make sure you’re not trying to enumerate the struct members in your code, but instead using a syntax that initializes the entire structure. For C++ code, we recommend using the empty braces syntax for all your OptiX host-side code, like so:

OptixPipelineCompileOptions pipeline_compile_options = {};

–
David.

1 Like