OWL
OptiX7 Wrapper Library
|
#include <Buffer.h>
Public Member Functions | |
DeviceDataForBuffers (DeviceBuffer *parent, const DeviceContext::SP &device) | |
void | executeResize () override |
void | uploadAsync (const void *hostDataPtr) override |
![]() | |
DeviceData (DeviceBuffer *parent, const DeviceContext::SP &device) | |
virtual | ~DeviceData () |
![]() | |
DeviceData (const DeviceContext::SP &device) | |
Public Attributes | |
std::vector< Buffer::SP > | hostHandles |
![]() | |
DeviceBuffer *const | parent |
![]() | |
void * | d_pointer { 0 } |
Additional Inherited Members | |
![]() | |
typedef std::shared_ptr< DeviceData > | SP |
![]() | |
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
|
inline |
|
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<Buffer::SP> owl::DeviceBuffer::DeviceDataForBuffers::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