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

◆ update_buffer()

void MayaFlux::Core::VKDescriptorManager::update_buffer ( vk::Device  device,
vk::DescriptorSet  set,
uint32_t  binding,
vk::Buffer  buffer,
vk::DeviceSize  offset = 0,
vk::DeviceSize  range = VK_WHOLE_SIZE 
)

Update descriptor set with buffer binding.

Parameters
deviceLogical device
setDescriptor set to update
bindingBinding index
bufferBuffer to bind
offsetOffset in buffer (bytes)
rangeSize to bind (VK_WHOLE_SIZE for entire buffer)

Binds a buffer to the specified binding point in the descriptor set. Must match the type declared in the layout (storage/uniform buffer).

Example: manager.update_buffer(device, set, 0, vk_buffer, 0, VK_WHOLE_SIZE); // Now shader can access: layout(binding=0) buffer Data { ... };

Definition at line 316 of file VKDescriptorManager.cpp.

323{
324 if (!set) {
326 "Cannot update null descriptor set");
327 return;
328 }
329
330 if (!buffer) {
332 "Cannot bind null buffer to descriptor set");
333 return;
334 }
335
336 vk::DescriptorBufferInfo buffer_info;
337 buffer_info.buffer = buffer;
338 buffer_info.offset = offset;
339 buffer_info.range = range;
340
341 vk::WriteDescriptorSet write;
342 write.dstSet = set;
343 write.dstBinding = binding;
344 write.dstArrayElement = 0;
345 write.descriptorCount = 1;
346 // Note: type is inferred from layout, but we assume storage buffer
347 // For flexibility, could add type parameter if needed
348 write.descriptorType = vk::DescriptorType::eStorageBuffer;
349 write.pBufferInfo = &buffer_info;
350
351 device.updateDescriptorSets(1, &write, 0, nullptr);
352
354 "Updated descriptor set binding {} with buffer (offset: {}, range: {})",
355 binding, offset, range);
356}
#define MF_ERROR(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
@ GraphicsBackend
Graphics/visual rendering backend (Vulkan, OpenGL)
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::Core, MayaFlux::Journal::GraphicsBackend, MF_DEBUG, and MF_ERROR.