MayaFlux 0.4.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 383 of file GpuDispatchCore.cpp.

386{
387 m_staging_floats.clear();
388
389 if (Kakshya::is_structured_modality(structure_info.modality))
390 return;
391
392 bool all_inputs_staged = !m_bindings.empty();
393 for (size_t i = 0; i < m_bindings.size(); ++i) {
395 continue;
396 if (i >= m_binding_data.size() || m_binding_data[i].empty()) {
397 all_inputs_staged = false;
398 break;
399 }
400 }
401 if (all_inputs_staged)
402 return;
403
404 size_t total = 0;
405
406 for (const auto& ch : channels)
407 total += ch.size();
408 m_staging_floats.reserve(total);
409
410 for (const auto& ch : channels) {
411 for (double v : ch)
412 m_staging_floats.push_back(static_cast<float>(v));
413 }
414}
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:116

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

Referenced by prepare_gpu_inputs().

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