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

◆ bind_buffer()

void MayaFlux::Buffers::ShaderProcessor::bind_buffer ( const std::string &  descriptor_name,
const std::shared_ptr< VKBuffer > &  buffer 
)

Bind a VKBuffer to a named shader descriptor.

Parameters
descriptor_nameLogical name (e.g., "input", "output")
bufferVKBuffer to bind

Registers the buffer for descriptor set binding. The descriptor_name must match a key in config.bindings.

Definition at line 106 of file ShaderProcessor.cpp.

107{
108 if (!buffer) {
110 "Cannot bind null buffer to descriptor '{}'", descriptor_name);
111 return;
112 }
113
114 if (m_config.bindings.find(descriptor_name) == m_config.bindings.end()) {
115 ShaderBinding default_binding;
116 default_binding.set = 0;
117 default_binding.binding = static_cast<uint32_t>(m_config.bindings.size());
118 default_binding.type = vk::DescriptorType::eStorageBuffer;
119 m_config.bindings[descriptor_name] = default_binding;
120
121 // MF_DEBUG(Journal::Component::Buffers, Journal::Context::BufferProcessing,
122 // "Created default binding for '{}': set={}, binding={}",
123 // descriptor_name, default_binding.set, default_binding.binding);
124 }
125
126 m_bound_buffers[descriptor_name] = buffer;
128
129 // MF_DEBUG(Journal::Component::Buffers, Journal::Context::BufferProcessing,
130 // "Bound buffer to descriptor '{}' (size: {} bytes)",
131 // descriptor_name, buffer->get_size_bytes());
132}
#define MF_ERROR(comp, ctx,...)
std::unordered_map< std::string, std::shared_ptr< VKBuffer > > m_bound_buffers
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
std::unordered_map< std::string, ShaderBinding > bindings

References MayaFlux::Buffers::ShaderBinding::binding, MayaFlux::Buffers::ShaderProcessorConfig::bindings, MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, m_bound_buffers, m_config, m_needs_descriptor_rebuild, MF_ERROR, MayaFlux::Buffers::ShaderBinding::set, and MayaFlux::Buffers::ShaderBinding::type.

Referenced by auto_bind_buffer(), MayaFlux::Buffers::DescriptorBindingsProcessor::bind_matrix_node(), MayaFlux::Buffers::DescriptorBindingsProcessor::bind_scalar_node(), MayaFlux::Buffers::DescriptorBindingsProcessor::bind_structured_node(), and MayaFlux::Buffers::DescriptorBindingsProcessor::bind_vector_node().

+ Here is the caller graph for this function: