OWL
OptiX7 Wrapper Library
|
#include <Buffer.h>
Public Types | |
typedef std::shared_ptr< DeviceData > | SP |
![]() | |
typedef std::shared_ptr< DeviceData > | SP |
Public Member Functions | |
DeviceData (DeviceBuffer *parent, const DeviceContext::SP &device) | |
virtual | ~DeviceData () |
virtual void | executeResize ()=0 |
virtual void | uploadAsync (const void *hostDataPtr)=0 |
![]() | |
DeviceData (const DeviceContext::SP &device) | |
Public Attributes | |
DeviceBuffer *const | parent |
![]() | |
void * | d_pointer { 0 } |
any device-specific data, such as optix handles, cuda device pointers, etc. this is a virtual base class whose derived classes will do the actual work
typedef std::shared_ptr<DeviceData> owl::DeviceBuffer::DeviceData::SP |
owl::DeviceBuffer::DeviceData::DeviceData | ( | DeviceBuffer * | parent, |
const DeviceContext::SP & | device | ||
) |
any device-specific data, such as optix handles, cuda device pointers, etc
|
virtual |
destructor that releases any still-alloced memory
|
pure virtual |
executes the resize on the given device, including freeing old memory, and allocating required elemnts in device format, as required
Implemented in owl::DeviceBuffer::DeviceDataForCopyableData, owl::DeviceBuffer::DeviceDataForBuffers, and owl::DeviceBuffer::DeviceDataForTextures.
|
pure virtual |
create an async upload for data from the given host data pointer, using the given device's cuda stream, and doing any required translation from host-side data (eg, a texture object handle) to device-side data (ie, the cudaTextreObject_t for that device). this will not wait for the upload to complete, so an explicit cuda sync has to be done to ensure no race conditiosn will occur
Implemented in owl::DeviceBuffer::DeviceDataForCopyableData, owl::DeviceBuffer::DeviceDataForBuffers, and owl::DeviceBuffer::DeviceDataForTextures.
DeviceBuffer* const owl::DeviceBuffer::DeviceData::parent |