summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Holman <dholman@gymli.org>2024-11-19 14:53:39 -0600
committerDanny Holman <dholman@gymli.org>2024-11-19 14:53:39 -0600
commitb88af607547a79816726adb39acc5afedf978dd6 (patch)
treecca7ed415e2bc523da91c7c8ed84ac3677300483
parente99a55baa8f353a42b43aa86e7dddc3d8b68d5dc (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.c6
-rw-r--r--render/vulkan/renderpass.c12
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;