24#ifndef PXR_IMAGING_HD_ST_STAGING_BUFFER_H
25#define PXR_IMAGING_HD_ST_STAGING_BUFFER_H
28#include "pxr/imaging/hdSt/api.h"
30#include "pxr/imaging/hgi/blitCmdsOps.h"
31#include "pxr/imaging/hgi/buffer.h"
36PXR_NAMESPACE_OPEN_SCOPE
40using HdStStagingBufferSharedPtr =
41 std::shared_ptr<class HdStStagingBuffer>;
81 static constexpr int32_t MULTIBUFFERING = 3;
89 std::vector<HgiBufferGpuToGpuOp> _gpuCopyOps;
92PXR_NAMESPACE_CLOSE_SCOPE
A central registry of all GPU resources.
Provides a staging buffer for CPU writes of triple-buffered resources.
HDST_API void StageCopy(HgiBufferCpuToGpuOp const ©Op)
Submit a CPU to GPU copy operation to be added to the staging buffer.
HDST_API void Resize(size_t totalSize)
Set the capacity for the staging buffer.
HDST_API void Flush()
Flush the queued GPU to GPU blits from the calls to StageCopy.
HDST_API void Deallocate()
Destroys contained HgiBuffers and resets state to empty.
Describes the properties needed to copy buffer data from CPU to GPU.