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

◆ create_descriptor_buffer()

std::shared_ptr< VKBuffer > MayaFlux::Buffers::DescriptorBindingsProcessor::create_descriptor_buffer ( size_t  size,
Portal::Graphics::DescriptorRole  role 
)
private

Create GPU buffer for a descriptor binding.

Definition at line 672 of file DescriptorBindingsProcessor.cpp.

675{
676 VKBuffer::Usage usage {};
677
680 } else { // SSBO
682 }
683
684 auto buffer = std::make_shared<VKBuffer>(
685 size,
686 usage,
688
689 auto buffer_service = Registry::BackendRegistry::instance()
690 .get_service<Registry::Service::BufferService>();
691
692 if (!buffer_service) {
693 error<std::runtime_error>(
696 std::source_location::current(),
697 "create_descriptor_buffer requires a valid BufferService");
698 }
699
700 buffer_service->initialize_buffer(buffer);
701
702 return buffer;
703}
Range size
@ UNIFORM
Uniform buffer (host-visible)
@ COMPUTE
Storage buffer for compute shaders.
Interface * get_service()
Query for a backend service.
static BackendRegistry & instance()
Get the global registry instance.
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
@ UNKNOWN
Unknown or undefined modality.
@ UNIFORM
Small, read-only, frequently updated (scalars, param structs)

References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, MayaFlux::Buffers::VKBuffer::COMPUTE, MayaFlux::Registry::BackendRegistry::get_service(), MayaFlux::Registry::BackendRegistry::instance(), size, MayaFlux::Buffers::VKBuffer::UNIFORM, MayaFlux::Portal::Graphics::UNIFORM, and MayaFlux::Kakshya::UNKNOWN.

Referenced by bind_audio_buffer(), bind_host_vk_buffer(), bind_matrix_node(), bind_network(), bind_scalar_node(), bind_structured_node(), and bind_vector_node().

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