OptiX 6.0 sample code fails to run with GT 750M.

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?


OS: Windows 10 1809
GPU: GT 750M 2GB
Driver version: 418.81
VS2017 15.9.6

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.

Thank you for your quick response.

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.

CUDA added these sometime ago but OptiX didn’t have an API to make use of them so far.
E.g. at the end of this table: https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__TYPES.html#group__CUDART__TYPES_1g6b3a50368a0aa592f65e928adca9b929

I don’t know, yet, how to generate these, but searching for “CUDA block compressed texture” finds some nice explanations.


the same error occurs to me while running optix 6.0 samples on my laptop with an nvidia 780 gtx.

is there a way to have them working?

No, that is a Kepler GPU. You’re limited to OptiX 5.1.x versions on that system.