21#include "LaunchParams.h"
27 typedef std::shared_ptr<RayGenType> SP;
32 struct DeviceData :
public RegisteredObject::DeviceData {
33 typedef std::shared_ptr<DeviceData> SP;
40 OptixProgramGroup
pg = 0;
48 const std::vector<OWLVarDecl> &
varDecls);
51 std::string
toString()
const override;
57 RegisteredObject::DeviceData::SP
createOn(
const DeviceContext::SP &device)
override;
71 typedef std::shared_ptr<RayGen> SP;
76 struct DeviceData :
public RegisteredObject::DeviceData {
77 DeviceData(
const DeviceContext::SP &device,
size_t dataSize);
96 std::string
toString()
const override;
100 void launch(
const vec3i &dims);
105 void launchAsync(
const vec3i &dims,
const LaunchParams::SP &launchParams);
112 const LaunchParams::SP &launchParams);
116 void writeSBTRecord(uint8_t *
const sbtRecord,
const DeviceContext::SP &device);
119 RegisteredObject::DeviceData::SP
createOn(
const DeviceContext::SP &device)
override;
133 assert(device && device->ID >= 0 && device->ID < (
int)
deviceData.size());
141 assert(device && device->ID >= 0 && device->ID < (
int)
deviceData.size());
Definition: DeviceMemory.h:23
std::vector< DeviceData::SP > deviceData
Definition: Object.h:86
OptixProgramGroup pg
Definition: RayGen.h:40
const std::string annotatedProgName
Definition: RayGen.h:65
const std::string progName
Definition: RayGen.h:63
RegisteredObject::DeviceData::SP createOn(const DeviceContext::SP &device) override
Definition: RayGen.cpp:54
std::string toString() const override
Definition: RayGen.cpp:48
Module::SP module
Definition: RayGen.h:60
DeviceData & getDD(const DeviceContext::SP &device) const
Definition: RayGen.h:131
DeviceMemory sbtRecordBuffer
Definition: RayGen.h:81
const size_t rayGenRecordSize
Definition: RayGen.h:85
void writeSBTRecord(uint8_t *const sbtRecord, const DeviceContext::SP &device)
Definition: RayGen.cpp:112
void launch(const vec3i &dims)
Definition: RayGen.cpp:134
virtual ~RayGen()
Definition: RayGen.cpp:90
DeviceData & getDD(const DeviceContext::SP &device) const
Definition: RayGen.h:139
RegisteredObject::DeviceData::SP createOn(const DeviceContext::SP &device) override
Definition: RayGen.cpp:105
std::string toString() const override
Definition: RayGen.cpp:99
void launchAsync(const vec3i &dims, const LaunchParams::SP &launchParams)
Definition: RayGen.cpp:140
void launchAsyncOnDevice(const vec3i &dims, uint32_t deviceID, const LaunchParams::SP &launchParams)
Definition: RayGen.cpp:151
Definition: SBTObject.h:33
const std::vector< OWLVarDecl > varDecls
Definition: SBTObject.h:70
const size_t varStructSize
Definition: SBTObject.h:66
Definition: SBTObject.h:118
std::shared_ptr< RayGenType > const type
Definition: SBTObject.h:134