|
Foundation
|
Single persistent staging buffer + immediate context for quick, batchable readbacks. More...
#include <ImmediateContext.hpp>
Public Member Functions | |
| ImmediateReadback (RHIDevice *device, size_t capacity, RHIDeviceQueueType type=RHIDeviceQueueType::Graphics) | |
| void | Begin () |
| char * | Readback (RHIBuffer *src, size_t dataSize, size_t srcOffset=0) |
| char * | Readback (RHITexture *src, size_t dataSize, RHITextureSubresourceLayer srcLayer={.aspect=RHITextureAspectFlagBits::Color}, RHIOffset2D srcOffset={}, RHIExtent2D srcExtent={}) |
| char * | Readback (RHITexture *src, size_t dataSize, RHITextureSubresourceLayer srcLayer, RHIOffset3D srcOffset, RHIExtent3D srcExtent) |
| bool | Align (uint32_t alignment) |
| void | End (RHIDeviceFence *completionFence=nullptr) |
| void | End (ImmediateSubmitDesc const &desc) |
| void | WaitIdle () |
Public Attributes | |
| ImmediateContext | ctx |
| RHIDeviceScopedHandle< RHIBuffer > | staging |
| char * | begin |
| char * | ptr |
| char * | end |
Single persistent staging buffer + immediate context for quick, batchable readbacks.
|
inline |
| void Foundation::RenderCore::ImmediateReadback::Begin | ( | ) |
Resets the readback context for a new series of readbacks. This MUST be called before any Readback calls.
| void Foundation::RenderCore::ImmediateReadback::End | ( | ImmediateSubmitDesc const & | desc | ) |
| void Foundation::RenderCore::ImmediateReadback::End | ( | RHIDeviceFence * | completionFence = nullptr | ) |
Finalizes the readback context, submitting the copy commands.
| completionFence | Optional fence to signal upon completion. |
| char * Foundation::RenderCore::ImmediateReadback::Readback | ( | RHIBuffer * | src, |
| size_t | dataSize, | ||
| size_t | srcOffset = 0 |
||
| ) |
Reads data from src buffer with a staging copy.
| char * Foundation::RenderCore::ImmediateReadback::Readback | ( | RHITexture * | src, |
| size_t | dataSize, | ||
| RHITextureSubresourceLayer | srcLayer, | ||
| RHIOffset3D | srcOffset, | ||
| RHIExtent3D | srcExtent | ||
| ) |
| char * Foundation::RenderCore::ImmediateReadback::Readback | ( | RHITexture * | src, |
| size_t | dataSize, | ||
| RHITextureSubresourceLayer | srcLayer = {.aspect = RHITextureAspectFlagBits::Color}, |
||
| RHIOffset2D | srcOffset = {}, |
||
| RHIExtent2D | srcExtent = {} |
||
| ) |
Reads data from src texture with a staging copy.
| void Foundation::RenderCore::ImmediateReadback::WaitIdle | ( | ) |
| char* Foundation::RenderCore::ImmediateReadback::begin |
| ImmediateContext Foundation::RenderCore::ImmediateReadback::ctx |
| char * Foundation::RenderCore::ImmediateReadback::end |
| char * Foundation::RenderCore::ImmediateReadback::ptr |
| RHIDeviceScopedHandle<RHIBuffer> Foundation::RenderCore::ImmediateReadback::staging |