|
MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
|
| MAYAFLUX_API void MayaFlux::Buffers::resolve_back_buffer_read | ( | TransferHandle & | handle, |
| const VKBufferResources::GenerationSlot & | slot, | ||
| void * | data, | ||
| size_t | size, | ||
| std::shared_ptr< VKBuffer > & | staging, | ||
| size_t | staging_offset = 0 |
||
| ) |
Wait for a recorded download, then copy it out of staging.
| handle | Handle from download_back_buffer_async. Nulled on return. A null handle means the slot was host-visible; slot is read directly in that case. |
| slot | Source slot, needed only for the host-visible path. |
| data | Destination pointer, at least size bytes. |
| size | Byte count. |
| staging | The same staging buffer the copy was recorded against. |
| staging_offset | The same offset it was recorded at. |
Issue every download_back_buffer_async in a batch before resolving any of them; resolving as you go reintroduces the serialisation the split exists to avoid.
Definition at line 331 of file StagingUtils.cpp.
References MayaFlux::Registry::BackendRegistry::get_service(), MayaFlux::Registry::BackendRegistry::instance(), MayaFlux::Buffers::VKBufferResources::GenerationSlot::mapped_ptr, size, and MayaFlux::Registry::Service::BufferService::wait_fenced.
Referenced by MayaFlux::Buffers::DataReadProcessor::collect_result(), download_back_buffer(), and MayaFlux::Buffers::VolumeGridBuffer::read_fields().
Here is the call graph for this function:
Here is the caller graph for this function: