fix descriptor writes
This commit is contained in:
parent
767990e654
commit
12aeecd99b
16
vulkan.d
16
vulkan.d
@ -186,6 +186,7 @@ enum ImageLayout : VkImageLayout
|
||||
Undefined = VK_IMAGE_LAYOUT_UNDEFINED,
|
||||
General = VK_IMAGE_LAYOUT_GENERAL,
|
||||
ColorAttach = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
|
||||
ReadOnly = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
|
||||
}
|
||||
|
||||
struct Image
|
||||
@ -212,6 +213,7 @@ struct ImageView
|
||||
{
|
||||
Image base;
|
||||
VkImageView view;
|
||||
ImageLayout shader_layout;
|
||||
|
||||
alias base this;
|
||||
}
|
||||
@ -936,8 +938,6 @@ ImmSubmit(Vulkan* vk, Buffer* buf, VkBufferCopy copy, void function(Vulkan*, Buf
|
||||
return success;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool
|
||||
TransferAssets(Vulkan* vk)
|
||||
{
|
||||
@ -1088,6 +1088,16 @@ CreateImageView(Vulkan* vk, ImageView* view, u32 w, u32 h, Format format, ImageU
|
||||
view.h = h;
|
||||
view.depth_image = usage == IU.Depth;
|
||||
view.usage = usage;
|
||||
|
||||
if(usage == IU.Draw)
|
||||
{
|
||||
view.shader_layout = ImageLayout.General;
|
||||
}
|
||||
else if(usage == IU.Texture)
|
||||
{
|
||||
view.shader_layout = ImageLayout.ReadOnly;
|
||||
}
|
||||
else assert(false, "Unimplemented usage");
|
||||
}
|
||||
|
||||
pragma(inline): void
|
||||
@ -1972,7 +1982,7 @@ PrepareWrite(Vulkan* vk, VkWriteDescriptorSet* write, DescSet set, Descriptor* d
|
||||
VkDescriptorImageInfo* info = Alloc!(VkDescriptorImageInfo)(arena);
|
||||
|
||||
info.imageView = desc.view.view;
|
||||
info.imageLayout = desc.view.layout;
|
||||
info.imageLayout = desc.view.shader_layout;
|
||||
write.pImageInfo = info;
|
||||
} break;
|
||||
case Uniform, Storage:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user