| OWL
    OptiX7 Wrapper Library | 
#include <DeviceContext.h>
 
 | Public Types | |
| typedef std::shared_ptr< DeviceContext > | SP | 
| Public Member Functions | |
| DeviceContext (Context *parent, int owlID, int cudaID) | |
| std::string | getDeviceName () const | 
| int | getCudaDeviceID () const | 
| CUstream | getStream () const | 
| void | configurePipelineOptions () | 
| void | buildPrograms () | 
| void | buildMissPrograms () | 
| void | buildRayGenPrograms () | 
| void | buildHitGroupPrograms () | 
| void | destroyPrograms () | 
| void | destroyMissPrograms () | 
| void | destroyRayGenPrograms () | 
| void | destroyHitGroupPrograms () | 
| void | destroyPipeline () | 
| void | buildPipeline () | 
| Public Attributes | |
| std::vector< OptixProgramGroup > | allActivePrograms | 
| OptixDeviceContext | optixContext = nullptr | 
| CUcontext | cudaContext = nullptr | 
| CUstream | stream = nullptr | 
| OptixPipelineCompileOptions | pipelineCompileOptions = {} | 
| OptixPipelineLinkOptions | pipelineLinkOptions = {} | 
| OptixModuleCompileOptions | moduleCompileOptions = {} | 
| OptixPipeline | pipeline = nullptr | 
| SBT | sbt = {} | 
| const int | cudaDeviceID | 
| const int | ID | 
| Context *const | parent | 
optix and cuda context for a single, specific GPU
| typedef std::shared_ptr<DeviceContext> owl::DeviceContext::SP | 
| owl::DeviceContext::DeviceContext | ( | Context * | parent, | 
| int | owlID, | ||
| int | cudaID | ||
| ) | 
create a new device context with given context object, using given GPU "cudaID", and serving the rols at the "owlID"th GPU in that context
| void owl::DeviceContext::buildHitGroupPrograms | ( | ) | 
| void owl::DeviceContext::buildMissPrograms | ( | ) | 
build all optix progrmas for miss program types
| void owl::DeviceContext::buildPipeline | ( | ) | 
| void owl::DeviceContext::buildPrograms | ( | ) | 
| void owl::DeviceContext::buildRayGenPrograms | ( | ) | 
| void owl::DeviceContext::configurePipelineOptions | ( | ) | 
configures the optixPipeline link options and compile options, based on what values (motion blur on/off, multi-level instnacing, etc) are set in the context
| void owl::DeviceContext::destroyHitGroupPrograms | ( | ) | 
| void owl::DeviceContext::destroyMissPrograms | ( | ) | 
| void owl::DeviceContext::destroyPipeline | ( | ) | 
| void owl::DeviceContext::destroyPrograms | ( | ) | 
| void owl::DeviceContext::destroyRayGenPrograms | ( | ) | 
| int owl::DeviceContext::getCudaDeviceID | ( | ) | const | 
helper function - return cuda device ID of this device
| std::string owl::DeviceContext::getDeviceName | ( | ) | const | 
helper function - return cuda name of this device
return CUDA's name string for given device
| 
 | inline | 
return the optix default stream for this device. launch params may use their own stream
| std::vector<OptixProgramGroup> owl::DeviceContext::allActivePrograms | 
collects all compiled programs during 'buildPrograms', such that all active progs can then be passed to optix durign pipeline creation
| CUcontext owl::DeviceContext::cudaContext = nullptr | 
| const int owl::DeviceContext::cudaDeviceID | 
| const int owl::DeviceContext::ID | 
linear ID (0,1,2,...) of how we number devices (i.e., 'first' device is always device 0, no matter if it runs on another physical/cuda device)
| OptixModuleCompileOptions owl::DeviceContext::moduleCompileOptions = {} | 
| OptixDeviceContext owl::DeviceContext::optixContext = nullptr | 
| Context* const owl::DeviceContext::parent | 
the owl context that this device is in
| OptixPipeline owl::DeviceContext::pipeline = nullptr | 
| OptixPipelineCompileOptions owl::DeviceContext::pipelineCompileOptions = {} | 
| OptixPipelineLinkOptions owl::DeviceContext::pipelineLinkOptions = {} | 
| SBT owl::DeviceContext::sbt = {} | 
| CUstream owl::DeviceContext::stream = nullptr |