|
OWL
OptiX7 Wrapper Library
|
#include <Buffer.h>
Public Types | |
| typedef std::shared_ptr< ManagedMemoryBuffer > | SP |
Public Types inherited from owl::Buffer | |
| typedef std::shared_ptr< Buffer > | SP |
Public Types inherited from owl::ContextObject | |
| typedef std::shared_ptr< ContextObject > | SP |
Public Types inherited from owl::Object | |
| typedef std::shared_ptr< Object > | SP |
Public Member Functions | |
| ManagedMemoryBuffer (Context *const context, OWLDataType type) | |
| void | resize (size_t newElementCount) override |
| void | upload (const void *hostPtr) override |
| void | upload (const int deviceID, const void *hostPtr) override |
| std::string | toString () const override |
Public Member Functions inherited from owl::Buffer | |
| Buffer (Context *const context, OWLDataType type) | |
| virtual | ~Buffer () |
| Buffer::DeviceData & | getDD (const DeviceContext::SP &device) const |
| const void * | getPointer (const DeviceContext::SP &device) const |
| size_t | getElementCount () const |
| size_t | sizeInBytes () const |
| RegisteredObject::DeviceData::SP | createOn (const DeviceContext::SP &device) override |
| void | destroy () |
Public Member Functions inherited from owl::RegisteredObject | |
| RegisteredObject (Context *const context, ObjectRegistry ®istry) | |
| ~RegisteredObject () | |
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 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 () |
Public Attributes | |
| void * | cudaManagedMem { 0 } |
Public Attributes inherited from owl::Buffer | |
| const OWLDataType | type |
| size_t | elementCount { 0 } |
Public Attributes inherited from owl::RegisteredObject | |
| int | ID |
| ObjectRegistry & | registry |
Public Attributes inherited from owl::ContextObject | |
| Context *const | context |
Public Attributes inherited from owl::Object | |
| const size_t | uniqueID |
| std::vector< DeviceData::SP > | deviceData |
Additional Inherited Members | |
Static Public Attributes inherited from owl::Object | |
| static std::atomic< uint64_t > | nextAvailableID |
a buffer that uses CUDA 'managed' memory. only makes sense for copyable data types. Make sure to read up on how managed mem works
| typedef std::shared_ptr<ManagedMemoryBuffer> owl::ManagedMemoryBuffer::SP |
| owl::ManagedMemoryBuffer::ManagedMemoryBuffer | ( | Context *const | context, |
| OWLDataType | type | ||
| ) |
|
overridevirtual |
resize buffer to new num elements
Implements owl::Buffer.
|
overridevirtual |
pretty-printer, for debugging
Reimplemented from owl::Buffer.
|
overridevirtual |
upload data from host, to only given device ID
Implements owl::Buffer.
|
overridevirtual |
upload data from host, using as many bytes as required by elemnetCount and dataSize
Implements owl::Buffer.
| void* owl::ManagedMemoryBuffer::cudaManagedMem { 0 } |
pointer to the (shared) cuda managed mem - this gets alloced once and is valid on both host and devices