add array index to descriptor struct

This commit is contained in:
Matthew 2025-12-26 18:51:36 +11:00
parent 11cf96b799
commit e412227cfc

View File

@ -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:
{