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

◆ process_audio_to_gpu()

void MayaFlux::Buffers::TransferProcessor::process_audio_to_gpu ( const std::shared_ptr< Buffer > &  gpu_buffer)
private

Definition at line 173 of file TransferProcessor.cpp.

174{
175 auto vk_buffer = std::dynamic_pointer_cast<VKBuffer>(gpu_buffer);
176 if (!vk_buffer) {
178 "TransferProcessor (audio→gpu) requires VKBuffer.");
179 return;
180 }
181
182 auto transfer_it = std::ranges::find_if(m_audio_to_gpu_map,
183 [&vk_buffer](const auto& pair) { return pair.second == vk_buffer; });
184
185 if (transfer_it == m_audio_to_gpu_map.end()) {
187 "No source AudioBuffer configured for this VKBuffer.");
188 return;
189 }
190
191 auto source_audio = transfer_it->first;
192
193 if (vk_buffer->is_host_visible()) {
194 upload_audio_to_gpu(source_audio, vk_buffer, nullptr);
195 } else {
196 auto staging_it = m_staging_map.find(vk_buffer);
197 if (staging_it == m_staging_map.end()) {
199 "No staging buffer configured for device-local VKBuffer.");
200 return;
201 }
202 upload_audio_to_gpu(source_audio, vk_buffer, staging_it->second);
203 }
204}
#define MF_RT_ERROR(comp, ctx,...)
std::unordered_map< std::shared_ptr< VKBuffer >, std::shared_ptr< VKBuffer > > m_staging_map
std::unordered_map< std::shared_ptr< AudioBuffer >, std::shared_ptr< VKBuffer > > m_audio_to_gpu_map
void upload_audio_to_gpu(const std::shared_ptr< AudioBuffer > &audio_buffer, const std::shared_ptr< VKBuffer > &gpu_buffer, const std::shared_ptr< VKBuffer > &staging)
Upload AudioBuffer to GPU (always double precision)
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, m_audio_to_gpu_map, m_staging_map, MF_RT_ERROR, and MayaFlux::Buffers::upload_audio_to_gpu().

Referenced by processing_function().

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