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

◆ flatten_channels_to_staging()

void MayaFlux::Yantra::GpuDispatchCore::flatten_channels_to_staging ( const std::vector< std::vector< double > > &  channels,
const DataStructureInfo structure_info 
)
protected

Flatten planar double channels into m_staging_floats.

Skipped for structured modalities (glm::vec3 etc.) since those are handled per-binding via PASSTHROUGH or integer paths.

Definition at line 473 of file GpuDispatchCore.cpp.

476{
477 m_staging_floats.clear();
479
480 if (Kakshya::is_structured_modality(structure_info.modality))
481 return;
482
483 bool all_inputs_staged = !m_bindings.empty();
484 for (size_t i = 0; i < m_bindings.size(); ++i) {
486 continue;
487 if (i >= m_binding_data.size() || m_binding_data[i].empty()) {
488 all_inputs_staged = false;
489 break;
490 }
491 }
492 if (all_inputs_staged)
493 return;
494
495 size_t total = 0;
496
497 for (const auto& ch : channels)
498 total += ch.size();
499 m_staging_floats.reserve(total);
500
501 for (const auto& ch : channels) {
502 for (double v : ch)
503 m_staging_floats.push_back(static_cast<float>(v));
504 }
505}
std::vector< uint8_t > m_native_staging_bytes
Native-typed staging buffer.
std::vector< std::vector< uint8_t > > m_binding_data
std::vector< GpuBufferBinding > m_bindings
bool is_structured_modality(DataModality modality)
Check if a modality represents structured data (vectors, matrices).
Definition NDData.hpp:200

References MayaFlux::Kakshya::is_structured_modality(), m_binding_data, m_bindings, m_native_staging_bytes, m_staging_floats, MayaFlux::Yantra::DataStructureInfo::modality, and MayaFlux::Portal::Graphics::GpuBufferBinding::OUTPUT.

Referenced by prepare_gpu_inputs().

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