OWL
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | List of all members
owl::RayGen Struct Reference

#include <RayGen.h>

Inheritance diagram for owl::RayGen:
owl::SBTObject< RayGenType > owl::SBTObjectBase owl::RegisteredObject owl::ContextObject owl::Object

Classes

struct  DeviceData
 

Public Types

typedef std::shared_ptr< RayGenSP
 
- Public Types inherited from owl::SBTObject< RayGenType >
typedef std::shared_ptr< SBTObjectSP
 
- Public Types inherited from owl::ContextObject
typedef std::shared_ptr< ContextObjectSP
 
- Public Types inherited from owl::Object
typedef std::shared_ptr< ObjectSP
 

Public Member Functions

 RayGen (Context *const context, RayGenType::SP type)
 
virtual ~RayGen ()
 
std::string toString () const override
 
void launch (const vec3i &dims)
 
void launchAsync (const vec3i &dims, const LaunchParams::SP &launchParams)
 
void launchAsyncOnDevice (const vec3i &dims, uint32_t deviceID, const LaunchParams::SP &launchParams)
 
void writeSBTRecord (uint8_t *const sbtRecord, const DeviceContext::SP &device)
 
RegisteredObject::DeviceData::SP createOn (const DeviceContext::SP &device) override
 
DeviceDatagetDD (const DeviceContext::SP &device) const
 
- Public Member Functions inherited from owl::SBTObject< RayGenType >
 SBTObject (Context *const context, ObjectRegistry &registry, std::shared_ptr< RayGenType > type)
 
virtual std::string toString () const
 
- Public Member Functions inherited from owl::SBTObjectBase
 SBTObjectBase (Context *const context, ObjectRegistry &registry, std::shared_ptr< SBTObjectType > type)
 
bool hasVariable (const std::string &name)
 
Variable::SP getVariable (const std::string &name)
 
void writeVariables (uint8_t *sbtEntry, const DeviceContext::SP &device) const
 
- Public Member Functions inherited from owl::RegisteredObject
 RegisteredObject (Context *const context, ObjectRegistry &registry)
 
- Public Member Functions inherited from owl::ContextObject
 ContextObject (Context *const context)
 
std::string toString () const override
 
- Public Member Functions inherited from owl::Object
 Object ()
 
virtual std::string toString () const
 
virtual DeviceData::SP createOn (const std::shared_ptr< DeviceContext > &device)
 
void createDeviceData (const std::vector< std::shared_ptr< DeviceContext > > &devices)
 
template<typename T >
std::shared_ptr< T > as ()
 

Additional Inherited Members

- Public Attributes inherited from owl::SBTObject< RayGenType >
std::shared_ptr< RayGenType > const type
 
- Public Attributes inherited from owl::SBTObjectBase
std::shared_ptr< SBTObjectType > const type
 
const std::vector< Variable::SP > variables
 
- Public Attributes inherited from owl::RegisteredObject
int ID
 
ObjectRegistryregistry
 
- Public Attributes inherited from owl::ContextObject
Context *const context
 
- Public Attributes inherited from owl::Object
const size_t uniqueID
 
std::vector< DeviceData::SP > deviceData
 
- Static Public Attributes inherited from owl::Object
static std::atomic< uint64_t > nextAvailableID
 

Detailed Description

an actual instance of a raygen program - defined by its type and variable values

Constructor & Destructor Documentation

◆ RayGen()

owl::RayGen::RayGen ( Context *const  context,
RayGenType::SP  type 
)

create new raygen of given type

◆ ~RayGen()

owl::RayGen::~RayGen ( )
virtual

clean up...

Member Function Documentation

◆ createOn()

RegisteredObject::DeviceData::SP owl::RayGen::createOn ( const DeviceContext::SP &  device)
override

creates the device-specific data for this group

◆ getDD()

RayGen::DeviceData & owl::RayGen::getDD ( const DeviceContext::SP &  device) const
inline

get reference to given device-specific data for this object

◆ launch()

void owl::RayGen::launch ( const vec3i &  dims)

execute a synchronous launch of this raygen program, of given dimensions - this will wait for the program to complete

◆ launchAsync()

void owl::RayGen::launchAsync ( const vec3i &  dims,
const LaunchParams::SP &  launchParams 
)

launch this raygen prog with given launch params, but do NOT wait for completion - this means the SBT shuld NOT be changed or rebuild until a launchParams->sync() has been done

◆ launchAsyncOnDevice()

void owl::RayGen::launchAsyncOnDevice ( const vec3i &  dims,
uint32_t  deviceID,
const LaunchParams::SP &  lp 
)

launch this raygen prog with given launch params, but only for the given device, and do NOT wait for completion. Launches can be done on a device by device basis for dynamic load balancing.

launch this raygen prog with given launch params, but do NOT wait for completion - this means the SBT shuld NOT be changed or rebuild until a launchParams->sync() has been done

◆ toString()

std::string owl::RayGen::toString ( ) const
overridevirtual

pretty-printer, for printf-debugging

Reimplemented from owl::SBTObject< RayGenType >.

◆ writeSBTRecord()

void owl::RayGen::writeSBTRecord ( uint8_t *const  sbtRecord,
const DeviceContext::SP &  device 
)

write the given SBT record, using the given device's corresponding device-side data represenataion


The documentation for this struct was generated from the following files: