192{
193 auto& bindings_list = buffer->get_pipeline_context().descriptor_buffer_bindings;
194
197
198 bool found = false;
199 for (auto& existing_binding : bindings_list) {
200 if (existing_binding.set == binding.set_index && existing_binding.binding == binding.binding_index) {
201 existing_binding.buffer_info.buffer = binding.gpu_buffer->get_buffer();
202 existing_binding.buffer_info.offset = binding.buffer_offset;
203 existing_binding.buffer_info.range = binding.buffer_size;
204 found = true;
205 break;
206 }
207 }
208
209 if (!found) {
210 bindings_list.push_back({ .set = binding.set_index,
211 .binding = binding.binding_index,
212 .type = binding.type,
213 .buffer_info = vk::DescriptorBufferInfo {
214 binding.gpu_buffer->get_buffer(),
215 binding.buffer_offset,
216 binding.buffer_size } });
217 }
218 }
219}
void update_descriptor_from_node(DescriptorBinding &binding)
Update descriptor from node context.
std::unordered_map< std::string, DescriptorBinding > m_bindings