diff --git a/vulkan.d b/vulkan.d index 83a1a6e..88efcdb 100644 --- a/vulkan.d +++ b/vulkan.d @@ -2247,41 +2247,63 @@ InitGlobalDescSet(Vulkan* vk) } void -Write(Vulkan* vk, DescSet set, ImageView* view, u32 index, DescType type) +Write(Vulkan* vk, DescSet set, ImageView* view, u32 binding, DescType type) { VkDescriptorImageInfo info = { - imageView: view.view, + imageView: view.view, imageLayout: view.layout, }; VkWriteDescriptorSet write = { - sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, - dstSet: set.handle, - dstBinding: index, + sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, + dstSet: set.handle, + dstBinding: binding, descriptorCount: 1, - descriptorType: type, - pImageInfo: &info, + descriptorType: type, + pImageInfo: &info, }; vkUpdateDescriptorSets(vk.device, 1, &write, 0, null); } void -Write(Vulkan* vk, DescSet set, Buffer* buffer, u32 index, DescType type) +Write(Vulkan* vk, DescSet set, Buffer* buffer, u32 binding, DescType type) { VkDescriptorBufferInfo info = { buffer: buffer.buffer, - range: buffer.size, + range: buffer.size, offset: 0, }; VkWriteDescriptorSet write = { - sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, - dstSet: set.handle, - dstBinding: index, + sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, + dstSet: set.handle, + dstBinding: binding, descriptorCount: 1, - descriptorType: type, - pBufferInfo: &info, + descriptorType: type, + pBufferInfo: &info, + }; + + vkUpdateDescriptorSets(vk.device, 1, &write, 0, null); +} + +void +Write(Vulkan* vk, DescSet set, Buffer* buffer, u32 binding, u32 index, DescType type) +{ + VkDescriptorBufferInfo info = { + buffer: buffer.buffer, + range: buffer.size, + offset: 0, + }; + + VkWriteDescriptorSet write = { + sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, + dstSet: set.handle, + dstBinding: binding, + dstArrayElement: index, + descriptorCount: 1, + descriptorType: type, + pBufferInfo: &info, }; vkUpdateDescriptorSets(vk.device, 1, &write, 0, null);