How to create independent entries?


How to make entries independent in OptiX ? “independent” means, OptiX only verifies the variables used by the entry that is launching (e.g., BVH should not be rebuilt if no rtTrace). Correct me if I am wrong, it seems there is no way to do that at the moment.

Independent entries could be useful, for example an entry for per-vertex skinning / deforming / morphing. It is more interesting than CUDA kernels for multiple GPUs and with a OptiX ray tracer.

A possible workaround which also doesn’t work, is to allow sharing OptiX buffers between different OptiX contexts.


Right now there is no way to do this. An upcoming release of optix will allow deferral of JIT compilation for unused entry points, but validation will still occur on all entry points.

As for sharing buffers between optix contexts, this is achievable via CUDA interop – you can allocate your memory via CUDA malloc, then hand the memory to both contexts via rtBufferSetDevicePointer.