OWL
|
#include <Buffer.h>
Public Types | |
typedef std::shared_ptr< DeviceData > | SP |
Public Types inherited from owl::Buffer::DeviceData | |
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, size_t offset, int64_t count)=0 |
virtual void | clear ()=0 |
Public Member Functions inherited from owl::Buffer::DeviceData | |
DeviceData (const DeviceContext::SP &device) | |
Public Attributes | |
DeviceBuffer *const | parent |
Public Attributes inherited from owl::Buffer::DeviceData | |
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
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 |
clear the buffer by setting its contents to zero
Implemented in owl::DeviceBuffer::DeviceDataForTextures, owl::DeviceBuffer::DeviceDataForBuffers, owl::DeviceBuffer::DeviceDataForGroups, and owl::DeviceBuffer::DeviceDataForCopyableData.
|
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::DeviceDataForTextures, owl::DeviceBuffer::DeviceDataForBuffers, owl::DeviceBuffer::DeviceDataForGroups, and owl::DeviceBuffer::DeviceDataForCopyableData.
|
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::DeviceDataForTextures, owl::DeviceBuffer::DeviceDataForBuffers, owl::DeviceBuffer::DeviceDataForGroups, and owl::DeviceBuffer::DeviceDataForCopyableData.