|
Foundation
|
Single persistent staging buffer + immediate context for quick, batchable uploads. More...
#include <ImmediateContext.hpp>
Public Member Functions | |
| ImmediateUpload (RHIDevice *device, size_t capacity) | |
| void | Begin () |
| char * | Upload (RHIBuffer *dst, size_t dataSize, size_t dstOffset) |
| char * | Upload (RHITexture *dst, size_t dataSize, RHITextureSubresourceLayer dstLayer={.aspect=RHITextureAspectFlagBits::Color}, RHIOffset2D dstOffset={}, RHIExtent2D dstExtent={}) |
| bool | Align (uint32_t alignment) |
| void | End (RHIDeviceFence *completionFence=nullptr) |
| void | WaitIdle () |
Public Attributes | |
| ImmediateContext | ctx |
| RHIDeviceScopedHandle< RHIBuffer > | staging |
| char * | begin |
| char * | ptr |
| char * | end |
Single persistent staging buffer + immediate context for quick, batchable uploads.
|
inline |
| void Foundation::RenderCore::ImmediateUpload::Begin | ( | ) |
Resets the upload context for a new series of uploads. This MUST be called before any Upload calls.
| void Foundation::RenderCore::ImmediateUpload::End | ( | RHIDeviceFence * | completionFence = nullptr | ) |
Finalizes the upload context, submitting the copy commands.
| completionFence | Optional fence to signal upon completion. |
| char * Foundation::RenderCore::ImmediateUpload::Upload | ( | RHIBuffer * | dst, |
| size_t | dataSize, | ||
| size_t | dstOffset | ||
| ) |
Uploads data to dst buffer with a staging copy.
| char * Foundation::RenderCore::ImmediateUpload::Upload | ( | RHITexture * | dst, |
| size_t | dataSize, | ||
| RHITextureSubresourceLayer | dstLayer = {.aspect = RHITextureAspectFlagBits::Color}, |
||
| RHIOffset2D | dstOffset = {}, |
||
| RHIExtent2D | dstExtent = {} |
||
| ) |
Uploads data to dst texture with a staging copy.
| void Foundation::RenderCore::ImmediateUpload::WaitIdle | ( | ) |
| char* Foundation::RenderCore::ImmediateUpload::begin |
| ImmediateContext Foundation::RenderCore::ImmediateUpload::ctx |
| char * Foundation::RenderCore::ImmediateUpload::end |
| char * Foundation::RenderCore::ImmediateUpload::ptr |
| RHIDeviceScopedHandle<RHIBuffer> Foundation::RenderCore::ImmediateUpload::staging |