MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ readback_aux()

void MayaFlux::Yantra::GpuDispatchCore::readback_aux ( GpuChannelResult &  result)
protected

Read back all OUTPUT bindings that have explicit size overrides into the aux map of a GpuChannelResult.

Parameters
resultGpuChannelResult to write aux entries into.

Definition at line 468 of file GpuDispatchCore.cpp.

469{
470 for (const auto& b : m_bindings) {
471 if (b.skip_auto_readback)
472 continue;
473
474 const size_t idx = b.binding;
475 const bool is_image = b.element_type == GpuBufferBinding::ElementType::IMAGE_STORAGE
477
478 if ((b.direction == GpuBufferBinding::Direction::OUTPUT
480 && !is_image
481 && idx < m_output_size_overrides.size()
482 && m_output_size_overrides[idx] > 0) {
483 const size_t sz = m_output_size_overrides[idx];
484 std::vector<uint8_t> raw(sz);
485 m_resources.download(dispatch_key(), idx, reinterpret_cast<float*>(raw.data()), sz);
486 result.aux[idx] = std::move(raw);
487 }
488 }
489}
size_t b
const std::string & dispatch_key() const
The key used for this context's GpuResourceManager unit.
std::vector< GpuBufferBinding > m_bindings
std::vector< size_t > m_output_size_overrides
void download(const std::string &key, size_t index, float *dest, size_t byte_size)
bool is_image(const fs::path &filepath)
Definition Depot.cpp:136

References MayaFlux::Yantra::GpuChannelResult::aux, b, dispatch_key(), MayaFlux::Yantra::GpuResourceManager::download(), MayaFlux::Portal::Graphics::GpuBufferBinding::IMAGE_SAMPLED, MayaFlux::Portal::Graphics::GpuBufferBinding::IMAGE_STORAGE, MayaFlux::Portal::Graphics::GpuBufferBinding::INPUT_OUTPUT, MayaFlux::is_image(), m_bindings, m_output_size_overrides, m_resources, and MayaFlux::Portal::Graphics::GpuBufferBinding::OUTPUT.

Referenced by MayaFlux::Yantra::ShaderExecutionContext< InputType, OutputType >::collect_result(), dispatch_core(), dispatch_core_chained(), and dispatch_core_chained_indirect().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: