diff options
author | Danny Holman <dholman@gymli.org> | 2024-11-19 14:53:39 -0600 |
---|---|---|
committer | Danny Holman <dholman@gymli.org> | 2024-11-19 14:53:39 -0600 |
commit | b88af607547a79816726adb39acc5afedf978dd6 (patch) | |
tree | cca7ed415e2bc523da91c7c8ed84ac3677300483 | |
parent | e99a55baa8f353a42b43aa86e7dddc3d8b68d5dc (diff) |
render: fix missing Vk*CreateInfo struct members
Fix several instances of missing structure defines that cause validation
errors.
Signed-off-by: Danny Holman <dholman@gymli.org>
-rw-r--r-- | render/vulkan/image.c | 6 | ||||
-rw-r--r-- | render/vulkan/renderpass.c | 12 |
2 files changed, 17 insertions, 1 deletions
diff --git a/render/vulkan/image.c b/render/vulkan/image.c index d82b809..9160fee 100644 --- a/render/vulkan/image.c +++ b/render/vulkan/image.c @@ -8,7 +8,12 @@ int _create_image_view(struct vkimage *image, struct vkdev *dev, VkFormat format vcinfo.pNext = NULL; vcinfo.flags = 0; vcinfo.image = image->handle; + vcinfo.viewType = VK_IMAGE_VIEW_TYPE_2D; vcinfo.format = format; + vcinfo.components.r = VK_COMPONENT_SWIZZLE_R; + vcinfo.components.g = VK_COMPONENT_SWIZZLE_G; + vcinfo.components.b = VK_COMPONENT_SWIZZLE_B; + vcinfo.components.a = VK_COMPONENT_SWIZZLE_A; vcinfo.subresourceRange.aspectMask = aflags; vcinfo.subresourceRange.baseMipLevel = 0; vcinfo.subresourceRange.levelCount = 1; @@ -49,6 +54,7 @@ struct vkimage* create_vkimage(struct vkdev *dev, VkFormat format, uint32_t widt VkMemoryAllocateInfo mainfo; mainfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; + mainfo.pNext = NULL; mainfo.allocationSize = mem_req.size; mainfo.memoryTypeIndex = mem_type; vkassert(vkAllocateMemory(dev->ldev, &mainfo, NULL, &ret->memory)); diff --git a/render/vulkan/renderpass.c b/render/vulkan/renderpass.c index 9f89697..339983d 100644 --- a/render/vulkan/renderpass.c +++ b/render/vulkan/renderpass.c @@ -72,7 +72,7 @@ void cmdbuf_end_single_use(struct vkcmdbuffer *cmdbuffer, struct vkdev *dev, VkQ struct vkrendpass* create_vkrendpass(struct vkdev *dev, struct vkswapchain *swapchain, vec4 area, vec4 color, float depth, uint32_t stencil) { VkAttachmentDescription atdesc[2]; atdesc[0].flags = 0; - atdesc[0].format = swapchain->format; + atdesc[0].format = swapchain->format_khr.format; atdesc[0].samples = VK_SAMPLE_COUNT_1_BIT; atdesc[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; atdesc[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE; @@ -120,6 +120,16 @@ struct vkrendpass* create_vkrendpass(struct vkdev *dev, struct vkswapchain *swap dep.dependencyFlags = 0; struct vkrendpass *ret = rune_alloc(sizeof(struct vkrendpass)); + ret->color[0] = color[0]; + ret->color[1] = color[1]; + ret->color[2] = color[2]; + ret->color[3] = color[3]; + ret->area[0] = area[0]; + ret->area[1] = area[1]; + ret->area[2] = area[2]; + ret->area[3] = area[3]; + ret->depth = depth; + ret->stencil = stencil; VkRenderPassCreateInfo rcinfo; rcinfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; rcinfo.pNext = NULL; |