MayaFlux 0.2.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,
vk::DescriptorType  type 
)
private

Create GPU buffer for a descriptor binding.

Definition at line 361 of file DescriptorBindingsProcessor.cpp.

364{
365 VKBuffer::Usage usage {};
366
367 if (type == vk::DescriptorType::eUniformBuffer) {
369 } else { // SSBO
371 }
372
373 auto buffer = std::make_shared<VKBuffer>(
374 size,
375 usage,
377
378 auto buffer_service = Registry::BackendRegistry::instance()
379 .get_service<Registry::Service::BufferService>();
380
381 if (!buffer_service) {
382 error<std::runtime_error>(
385 std::source_location::current(),
386 "create_descriptor_buffer requires a valid BufferService");
387 }
388
389 buffer_service->initialize_buffer(buffer);
390
391 return buffer;
392}
@ UNIFORM
Uniform buffer (host-visible when requested)
@ 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.

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

Referenced by bind_matrix_node(), 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: