From 2965bdde04eaa0012b29695aa015c354deb30bed Mon Sep 17 00:00:00 2001 From: Danny Holman Date: Mon, 28 Oct 2024 15:52:52 -0500 Subject: render: move get_vkerr_str into vkassert.h Move get_vkerr_str into vkassert.h and use its output in the vkassert function. This reduces the need for an error message argument when calling vkassert and makes error messages in logs consistent across the entire Vulkan renderer. Signed-off-by: Danny Holman --- render/vulkan/swapchain.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'render/vulkan/swapchain.c') diff --git a/render/vulkan/swapchain.c b/render/vulkan/swapchain.c index 1ecb644..1247c9a 100644 --- a/render/vulkan/swapchain.c +++ b/render/vulkan/swapchain.c @@ -47,12 +47,12 @@ struct vkswapchain* create_swapchain(struct vksurface *surface, struct vkdev *de cinfo.queueFamilyIndexCount = 0; cinfo.pQueueFamilyIndices = 0; } - vkassert(vkCreateSwapchainKHR(dev->ldev, &cinfo, NULL, &swapchain->handle), "Failed to create swapchain"); - vkassert(vkGetSwapchainImagesKHR(dev->ldev, swapchain->handle, &swapchain->img_count, NULL), "Failed to aquire swapchain image count"); + vkassert(vkCreateSwapchainKHR(dev->ldev, &cinfo, NULL, &swapchain->handle)); + vkassert(vkGetSwapchainImagesKHR(dev->ldev, swapchain->handle, &swapchain->img_count, NULL)); swapchain->images = rune_alloc(sizeof(VkImage) * swapchain->img_count); swapchain->views = rune_alloc(sizeof(VkImageView) * swapchain->img_count); - vkassert(vkGetSwapchainImagesKHR(dev->ldev, swapchain->handle, &swapchain->img_count, swapchain->images), "Failed to aquire swapchain images"); + vkassert(vkGetSwapchainImagesKHR(dev->ldev, swapchain->handle, &swapchain->img_count, swapchain->images)); VkImageViewCreateInfo vcinfo; for (uint32_t i = 0; i < swapchain->img_count; i++) { @@ -65,7 +65,7 @@ struct vkswapchain* create_swapchain(struct vksurface *surface, struct vkdev *de vcinfo.subresourceRange.levelCount = 1; vcinfo.subresourceRange.baseArrayLayer = 0; vcinfo.subresourceRange.layerCount = 1; - vkassert(vkCreateImageView(dev->ldev, &vcinfo, NULL, &swapchain->views[i]), "Failed to create image view"); + vkassert(vkCreateImageView(dev->ldev, &vcinfo, NULL, &swapchain->views[i])); } if (get_depth_format(dev) == 0) { @@ -96,18 +96,21 @@ void destroy_swapchain(struct vkswapchain *swapchain, struct vkdev *dev) { } void vkswapchain_present(struct vkswapchain *swapchain, struct vkdev *dev) { - VkPresentInfoKHR pinfo = {VK_STRUCTURE_TYPE_PRESENT_INFO_KHR}; + VkPresentInfoKHR pinfo; + pinfo.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR; + pinfo.pNext = NULL; pinfo.waitSemaphoreCount = 1; pinfo.pWaitSemaphores = &swapchain->render_complete; pinfo.swapchainCount = 1; pinfo.pSwapchains = &swapchain->handle; pinfo.pImageIndices = &dev->pres_index; + pinfo.pResults = NULL; VkResult res = vkQueuePresentKHR(dev->pres_queue, &pinfo); if (res == VK_ERROR_OUT_OF_DATE_KHR || res == VK_SUBOPTIMAL_KHR) STUBBED("Recreate swapchain"); else if (res != VK_SUCCESS) - log_output(LOG_FATAL, "Cannot present swapchain image"); + log_output(LOG_ERROR, "Vulkan error: %s", get_vkerr_str(res)); swapchain->frame = (swapchain->frame + 1) % swapchain->max_frames; } -- cgit v1.2.3