add array index to descriptor struct
This commit is contained in:
parent
11cf96b799
commit
e412227cfc
25
vulkan.d
25
vulkan.d
@ -232,16 +232,18 @@ struct Buffer
|
|||||||
|
|
||||||
struct Descriptor
|
struct Descriptor
|
||||||
{
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
Buffer buf;
|
||||||
|
Image image;
|
||||||
|
ImageView view;
|
||||||
|
BufferView buf_view;
|
||||||
|
VkSampler sampler;
|
||||||
|
}
|
||||||
DescType type;
|
DescType type;
|
||||||
u32 binding;
|
u32 binding;
|
||||||
union
|
u32 index;
|
||||||
{
|
bool array_elem;
|
||||||
Buffer buf;
|
|
||||||
Image image;
|
|
||||||
ImageView view;
|
|
||||||
BufferView buf_view;
|
|
||||||
VkSampler sampler;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enum MipmapMode : VkSamplerMipmapMode
|
enum MipmapMode : VkSamplerMipmapMode
|
||||||
@ -2021,6 +2023,11 @@ PrepareWrite(Vulkan* vk, VkWriteDescriptorSet* write, DescSet set, Descriptor* d
|
|||||||
write.dstBinding = desc.binding;
|
write.dstBinding = desc.binding;
|
||||||
write.descriptorCount = 1;
|
write.descriptorCount = 1;
|
||||||
|
|
||||||
|
if(desc.array_elem)
|
||||||
|
{
|
||||||
|
write.dstArrayElement = desc.index;
|
||||||
|
}
|
||||||
|
|
||||||
switch(desc.type) with(DescType)
|
switch(desc.type) with(DescType)
|
||||||
{
|
{
|
||||||
case Image, StorageImage, InputAttach:
|
case Image, StorageImage, InputAttach:
|
||||||
@ -2038,7 +2045,7 @@ PrepareWrite(Vulkan* vk, VkWriteDescriptorSet* write, DescSet set, Descriptor* d
|
|||||||
info.buffer = desc.buf.buffer;
|
info.buffer = desc.buf.buffer;
|
||||||
info.offset = cast(VkDeviceSize)0;
|
info.offset = cast(VkDeviceSize)0;
|
||||||
info.range = cast(VkDeviceSize)desc.buf.size;
|
info.range = cast(VkDeviceSize)desc.buf.size;
|
||||||
write.pBufferInfo = info;
|
write.pBufferInfo = info;
|
||||||
} break;
|
} break;
|
||||||
case UniformTexelBuf, StorageTexelBuf:
|
case UniformTexelBuf, StorageTexelBuf:
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user