MayaFlux 0.5.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 441 of file GpuDispatchCore.cpp.

442{
443 for (const auto& b : m_bindings) {
444 if (b.skip_auto_readback)
445 continue;
446
447 const size_t idx = b.binding;
448 const bool is_image = b.element_type == GpuBufferBinding::ElementType::IMAGE_STORAGE
450
451 if ((b.direction == GpuBufferBinding::Direction::OUTPUT
453 && !is_image
454 && idx < m_output_size_overrides.size()
455 && m_output_size_overrides[idx] > 0) {
456 const size_t sz = m_output_size_overrides[idx];
457 std::vector<uint8_t> raw(sz);
458 m_resources.download(dispatch_key(), idx, reinterpret_cast<float*>(raw.data()), sz);
459 result.aux[idx] = std::move(raw);
460 }
461 }
462}
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:108

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: