I have succeeded to make my OptiX renderer working with RTX on/off with GT 750M/RTX 2080Ti.
However OptiX 6.0 sample code fails to run.
For example, optixCompressedTexture sample reports exception at the first rtBufferCreate().
OptiX Error: 'Unknown error (Details: Function “_rtBufferCreate” caught exception: Encountered a rtcore error: m_exports->rtcDeviceContextCreateForCUDA( context, devctx ) returned (2): Invalid device context)
If I add rtGlobalSetAttribute(RT_GLOBAL_ATTRIBUTE_ENABLE_RTX) and disable RTX before creating the context then the program works fine.
When enabling RTX, the program reports the exception but this is reasonable because GPU used for this issue is GT 750M which doesn’t support RTX.
However the programming guide says that RTX is disabled by default.
Is this correct?
Sorry, you’re using an unsupported configuration. Please read the OptiX 6.0.0 release notes again.
Also if you have these two boards installed in a single system, that also isn’t going to work automatically, because combining a GPU with RT cores and one without in a single OptiX multi-GPU context is not going to be supported either. You’d need to restrict usage to the RTX 2080Ti in that case.
That could be done inside your application by explicitly using rtContextSetDevices with a compatible list of devices for OptiX 6.0.0.
Or without changing applications, you could use the CUDA_VISIBLE_DEVICES environment variable to limit the GPU devices visible to CUDA and therefore to OptiX.
Oops, my mistake, I have supposed that I can use OptiX 6.0 for Kepler GPU while I can’t enable RTX.
Therefore should old GPU user continue to use OptiX 5.1?
By the way, OptiX 6.0 brings the new sample about compressed texture (release note doesn’t mention it).
Is compressed texture supported natively? So GPU directly interpret the compressed texture like ordinary Graphics API?
“The amount of missing documentation is just too high” ;-)
That example shows how to use one of the newly added block compressed (BC) buffer formats added to the RTformat enums in optix_declarations.h.
In this example using RT_FORMAT_UNSIGNED_BC6H.