347{
349 return;
350 }
351
353 auto& descriptor_bindings = buffer->get_pipeline_context().descriptor_buffer_bindings;
354
355 std::set<std::pair<uint32_t, uint32_t>> updated_pairs;
356
357 for (const auto& binding : descriptor_bindings) {
360 "Descriptor set index {} out of range", binding.set);
361 continue;
362 }
363
364 foundry.update_descriptor_buffer(
366 binding.binding,
367 binding.type,
368 binding.buffer_info.buffer,
369 binding.buffer_info.offset,
370 binding.buffer_info.range);
371
372 updated_pairs.emplace(binding.set, binding.binding);
373 }
374
378 continue;
379 }
380
381 const auto& binding = binding_it->second;
382 auto key = std::make_pair(binding.set, binding.binding);
383
384 if (updated_pairs.count(key)) {
385 continue;
386 }
387
390 "Invalid descriptor set index {} for binding '{}'",
391 binding.set, descriptor_name);
392 continue;
393 }
394
395 foundry.update_descriptor_buffer(
397 binding.binding,
398 binding.type,
399 buffer->get_buffer(),
400 0,
401 buffer->get_size_bytes());
402 }
403}
#define MF_ERROR(comp, ctx,...)
#define MF_RT_ERROR(comp, ctx,...)
std::unordered_map< std::string, std::shared_ptr< VKBuffer > > m_bound_buffers
std::vector< Portal::Graphics::DescriptorSetID > m_descriptor_set_ids
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
MAYAFLUX_API ShaderFoundry & get_shader_foundry()
Get the global shader compiler instance.
std::unordered_map< std::string, ShaderBinding > bindings