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

◆ execute_shader()

void MayaFlux::Buffers::DescriptorBindingsProcessor::execute_shader ( const std::shared_ptr< VKBuffer > &  buffer)
overrideprotectedvirtual

Implements MayaFlux::Buffers::ShaderProcessor.

Definition at line 451 of file DescriptorBindingsProcessor.cpp.

452{
453 auto& bindings_list = buffer->get_pipeline_context().descriptor_buffer_bindings;
454
455 for (auto& [name, binding] : m_bindings) {
457
458 bool found = false;
459 for (auto& existing_binding : bindings_list) {
460 if (existing_binding.set == binding.set_index && existing_binding.binding == binding.binding_index) {
461 existing_binding.buffer_info.buffer = binding.gpu_buffer->get_buffer();
462 existing_binding.buffer_info.offset = binding.buffer_offset;
463 existing_binding.buffer_info.range = binding.buffer_size;
464 found = true;
465 break;
466 }
467 }
468
469 if (!found) {
470 bindings_list.push_back({ .set = binding.set_index,
471 .binding = binding.binding_index,
472 .type = to_vk_descriptor_type(binding.role),
473 .buffer_info = vk::DescriptorBufferInfo {
474 binding.gpu_buffer->get_buffer(),
475 binding.buffer_offset,
476 binding.buffer_size } });
477 }
478 }
479}
void update_descriptor_from_node(DescriptorBinding &binding)
Update descriptor from node context.
std::unordered_map< std::string, DescriptorBinding > m_bindings
vk::DescriptorType to_vk_descriptor_type(DescriptorRole role)
Convert DescriptorRole to the corresponding vk::DescriptorType.

References m_bindings, and update_descriptor_from_node().

+ Here is the call graph for this function: