OWL
|
#include <Buffer.h>
Public Member Functions | |
DeviceDataForGroups (DeviceBuffer *parent, const DeviceContext::SP &device) | |
void | executeResize () override |
void | uploadAsync (const void *hostDataPtr, size_t offset, int64_t count) override |
void | clear () override |
Public Member Functions inherited from owl::DeviceBuffer::DeviceData | |
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 | |
std::vector< std::shared_ptr< Group > > | hostHandles |
Public Attributes inherited from owl::DeviceBuffer::DeviceData | |
DeviceBuffer *const | parent |
Public Attributes inherited from owl::Buffer::DeviceData | |
void * | d_pointer { 0 } |
Additional Inherited Members | |
Public Types inherited from owl::DeviceBuffer::DeviceData | |
typedef std::shared_ptr< DeviceData > | SP |
Public Types inherited from owl::Buffer::DeviceData | |
typedef std::shared_ptr< DeviceData > | SP |
device-data for a device buffer like other device buffers, but containing buffers - ie, these are Buffer::SP on the host, but get translated to buffer descriptors upon upload
|
overridevirtual |
clear the buffer by setting its contents to zero
Implements owl::DeviceBuffer::DeviceData.
|
overridevirtual |
executes the resize on the given device, including freeing old memory, and allocating required elemnts in device format, as required
Implements owl::DeviceBuffer::DeviceData.
|
overridevirtual |
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
Implements owl::DeviceBuffer::DeviceData.
std::vector<std::shared_ptr<Group> > owl::DeviceBuffer::DeviceDataForGroups::hostHandles |
this is used only for buffers over object types (bufers of textures, or buffers of buffers). For those buffers, we use this vector to store host-side handles of the objects in this buffer, to ensure proper recounting