Program Compatibility Issues Only Optix 7.6 Works

Hello, I am doing some work adding features to a ray tracing program a colleague of mine wrote. I noticed that the program does not compile on 7.5 due to lacking OptixBuildInstanceInputArray struct member “instanceStride”.

The program also does not compile on 7.7 due to lacking the “optixModuleCreateFromPTX” function and “OptixPipelineLinkOptions” struct member “debugLevel”.

Could you elaborate on what these features are, why they were removed/replaced, and where I can get the programming manual for older versions of Optix?

Hi @AidenLewis, welcome!

The instanceStride parameter was added in OptiX 7.6. This allows you to have a memory layout for instances that is not tightly packed. The default value of 0 yields a tight packing and matches the behavior of OptiX 7.5 and earlier. As long as your program initializes your OptiX structs to be zero-filled, most code should be forward compatible.

OptiX 7.7 changed the name of optixModuleCreateFromPTX to optixModuleCreate because the input can now be either PTX or OptiX-IR. You can read more about both of these in the “Program Input” section of the most recent OptiX Programming Guide, and of course we’re happy to answer questions about them here on the forum. https://raytracing-docs.nvidia.com/optix7/guide/index.html#program_pipeline_creation#program-input

The best place to find the older OptiX Programming Guide versions is in the doc/ folder of the SDK package in question. The OptiX Programming Guide is included in each release in PDF form.


David.

1 Like

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