From e412227cfc63867170326743dd95dcc206874187 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 26 Dec 2025 18:51:36 +1100 Subject: [PATCH] add array index to descriptor struct --- vulkan.d | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/vulkan.d b/vulkan.d index 9ea74a1..8524e2b 100644 --- a/vulkan.d +++ b/vulkan.d @@ -232,16 +232,18 @@ struct Buffer struct Descriptor { + union + { + Buffer buf; + Image image; + ImageView view; + BufferView buf_view; + VkSampler sampler; + } DescType type; u32 binding; - union - { - Buffer buf; - Image image; - ImageView view; - BufferView buf_view; - VkSampler sampler; - } + u32 index; + bool array_elem; } enum MipmapMode : VkSamplerMipmapMode @@ -2021,6 +2023,11 @@ PrepareWrite(Vulkan* vk, VkWriteDescriptorSet* write, DescSet set, Descriptor* d write.dstBinding = desc.binding; write.descriptorCount = 1; + if(desc.array_elem) + { + write.dstArrayElement = desc.index; + } + switch(desc.type) with(DescType) { case Image, StorageImage, InputAttach: @@ -2038,7 +2045,7 @@ PrepareWrite(Vulkan* vk, VkWriteDescriptorSet* write, DescSet set, Descriptor* d info.buffer = desc.buf.buffer; info.offset = cast(VkDeviceSize)0; info.range = cast(VkDeviceSize)desc.buf.size; - write.pBufferInfo = info; + write.pBufferInfo = info; } break; case UniformTexelBuf, StorageTexelBuf: {