Have IS been able to access payload?

Hello,

I noticed that IS is allowed to call optixSet/GetPayload according to the latest document on the web and I have confirmed IS can actually do it.

However I felt that it had not been. And searched older document, older OptiX (even 6.5). It seems not possible for IS to access payload according to the offline documentation of 8.0.

OptiX 8.0 offline document:


OptiX 6.5 offline document:

Was there a silent update in the specification?
Or was this just an erratum in the doc and IS have been able to access payload forever?

Thanks,

That was an error inside that table of the documentation.
The IS could always access the payload registers inside OptiX 7 and 8 versions, not in older versions.
If you look inside the actual definitions inside the optix_device.h header that says:

/// Available in IS, AH, CH, MS
static __forceinline__ __device__ void optixSetPayload_0( unsigned int p );
...
/// Available in IS, AH, CH, MS
static __forceinline__ __device__ unsigned int optixGetPayload_0();
...

Thanks for the clarification.

I checked the DXR spec and IS does not have access to the payload there, so I imagined this is kind of silent update. I didn’t know OptiX has supported it from 7:D
Well we can emulate this by always-accepting IS + real decision on AH but having access to the payload in IS seems natural.

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