452{
453 auto& bindings_list = buffer->get_pipeline_context().descriptor_buffer_bindings;
454
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,
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.