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

◆ create_staging_buffer()

MAYAFLUX_API std::shared_ptr< VKBuffer > MayaFlux::Buffers::create_staging_buffer ( size_t  size)

Create staging buffer for transfers.

Parameters
sizeSize in bytes
Returns
Host-visible staging buffer ready for transfers

Definition at line 489 of file StagingUtils.cpp.

490{
491 auto buffer = std::make_shared<VKBuffer>(
492 size,
493 VKBuffer::Usage::STAGING,
494 Kakshya::DataModality::UNKNOWN);
495
496 auto buffer_service = Registry::BackendRegistry::instance()
497 .get_service<Registry::Service::BufferService>();
498 if (!buffer_service) {
499 error<std::runtime_error>(
500 Journal::Component::Buffers,
501 Journal::Context::BufferProcessing,
502 std::source_location::current(),
503 "create_staging_buffer requires a valid buffer service");
504 }
505
506 buffer_service->initialize_buffer(buffer);
507
508 return buffer;
509}
bool size
std::shared_ptr< NetworkGeometryBuffer > buffer
Backend buffer management service interface.

References buffer, MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, MayaFlux::Registry::BackendRegistry::get_service(), MayaFlux::Registry::BackendRegistry::instance(), size, and MayaFlux::Kakshya::UNKNOWN.

Referenced by MayaFlux::Buffers::MeshProcessor::allocate_gpu_buffers(), MayaFlux::Buffers::MeshNetworkProcessor::allocate_gpu_buffers(), MayaFlux::Buffers::GeometryBindingsProcessor::bind_geometry_node(), MayaFlux::Buffers::NetworkGeometryProcessor::bind_network(), download_back_buffer_async(), download_from_gpu(), download_from_gpu_async(), MayaFlux::Buffers::DataWriteProcessor::ensure_capacity(), MayaFlux::Buffers::NetworkGeometryProcessor::ensure_staging(), MayaFlux::Buffers::FormaProcessor::on_attach(), MayaFlux::Buffers::InstanceSSBOProcessor::on_attach(), MayaFlux::Buffers::DataWriteProcessor::on_attach(), MayaFlux::Buffers::VolumeGridBuffer::read_fields(), upload_back_buffer_async(), MayaFlux::Buffers::GeometryBindingsProcessor::upload_index_data(), upload_intervals(), and upload_to_gpu().

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