MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
StagingUtils.hpp File Reference
+ Include dependency graph for StagingUtils.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Buffers
 

Functions

void MayaFlux::Buffers::upload_host_visible (const std::shared_ptr< VKBuffer > &target, const Kakshya::DataVariant &data)
 Upload data to a host-visible buffer.
 
void MayaFlux::Buffers::upload_device_local (const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging_buffer, const Kakshya::DataVariant &data)
 Upload data to a device-local buffer using a staging buffer.
 
void MayaFlux::Buffers::download_host_visible (const std::shared_ptr< VKBuffer > &source, const std::shared_ptr< VKBuffer > &target)
 Download data from a host-visible buffer.
 
void MayaFlux::Buffers::download_device_local (const std::shared_ptr< VKBuffer > &source, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging_buffer)
 Download data from a device-local buffer using a staging buffer.
 
void MayaFlux::Buffers::upload_to_gpu (const void *data, size_t size, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload raw data to GPU buffer (auto-detects host-visible vs device-local)
 
template<typename T >
void MayaFlux::Buffers::upload_to_gpu (std::span< const T > data, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload typed data to GPU buffer.
 
template<typename T >
void MayaFlux::Buffers::upload_to_gpu (const std::vector< T > &data, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload vector to GPU buffer.
 
void MayaFlux::Buffers::download_from_gpu (const std::shared_ptr< VKBuffer > &source, void *data, size_t size, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download from GPU buffer to raw data (auto-detects host-visible vs device-local)
 
template<typename T >
void MayaFlux::Buffers::download_from_gpu (const std::shared_ptr< VKBuffer > &source, std::span< T > data, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download from GPU buffer to typed span.
 
template<typename T >
void MayaFlux::Buffers::download_from_gpu (const std::shared_ptr< VKBuffer > &source, std::vector< T > &data, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download from GPU buffer to vector.
 
std::shared_ptr< VKBufferMayaFlux::Buffers::create_staging_buffer (size_t size)
 Create staging buffer for transfers.
 
bool MayaFlux::Buffers::is_device_local (const std::shared_ptr< VKBuffer > &buffer)
 Check if buffer is device-local (staging needed)
 
template<typename T >
void MayaFlux::Buffers::upload_from_view (const Kakshya::DataAccess &accessor, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload data from DataAccess view to GPU buffer (precision-preserving)
 
template<typename T >
requires GlmType<T>
void MayaFlux::Buffers::upload_structured_view (const Kakshya::DataAccess &accessor, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload structured data with GLM double-precision types.
 
template<typename T >
Kakshya::DataAccess MayaFlux::Buffers::download_to_view (const std::shared_ptr< VKBuffer > &source, Kakshya::DataVariant &target_variant, const std::vector< Kakshya::DataDimension > &dimensions, Kakshya::DataModality modality, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download GPU buffer to DataAccess-compatible format (precision-preserving)
 
void MayaFlux::Buffers::upload_audio_to_gpu (const std::shared_ptr< AudioBuffer > &audio_buffer, const std::shared_ptr< VKBuffer > &gpu_buffer, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload AudioBuffer to GPU (always double precision)
 
void MayaFlux::Buffers::download_audio_from_gpu (const std::shared_ptr< VKBuffer > &gpu_buffer, const std::shared_ptr< AudioBuffer > &audio_buffer, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download GPU buffer to AudioBuffer (expects double precision)