From 1c32991ee62593a9628d95fc0e2610142f6c1f02 Mon Sep 17 00:00:00 2001 From: Warwick New Date: Mon, 14 Oct 2024 13:35:16 +0100 Subject: [PATCH] Setup the debug messenger after we create the instance. --- src/main.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/main.c b/src/main.c index 1a9e77b..abdcf63 100644 --- a/src/main.c +++ b/src/main.c @@ -89,7 +89,6 @@ void populateDebugMessengerCreateInfo( VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT; createInfo->pfnUserCallback = debugCallback; - createInfo->pUserData = NULL; // Optional } void createInstance(Application *app) { @@ -126,10 +125,11 @@ void createInstance(Application *app) { VkExtensionProperties extensions[extensionCount]; vkEnumerateInstanceExtensionProperties(NULL, &extensionCount, extensions); - VkDebugUtilsMessengerCreateInfoEXT debugCreateInfo = {}; + // VkDebugUtilsMessengerCreateInfoEXT debugCreateInfo = {0}; if (enableValidationLayers) { - populateDebugMessengerCreateInfo(&debugCreateInfo); - createInfo.pNext = (VkDebugUtilsMessengerCreateInfoEXT *)&debugCreateInfo; + // populateDebugMessengerCreateInfo(&debugCreateInfo); + // createInfo.pNext = (VkDebugUtilsMessengerCreateInfoEXT + // *)&debugCreateInfo; createInfo.enabledLayerCount = validationLayerCount; createInfo.ppEnabledLayerNames = validationLayers; @@ -190,33 +190,36 @@ VkResult CreateDebugUtilsMessengerEXT( } void setupDebugMessenger(Application *app) { - if (enableValidationLayers && !checkValidationLayerSupport()) { + if (!enableValidationLayers) { + return; + } + if (!checkValidationLayerSupport()) { fprintf(stderr, "Validation layers requested, but not available!\n"); exit(EXIT_FAILURE); - VkDebugUtilsMessengerCreateInfoEXT createInfo = {}; - populateDebugMessengerCreateInfo(&createInfo); + } + VkDebugUtilsMessengerCreateInfoEXT createInfo = {}; + populateDebugMessengerCreateInfo(&createInfo); - if (CreateDebugUtilsMessengerEXT(app->instance, &createInfo, NULL, - &app->debugMessenger) != VK_SUCCESS) { - fprintf(stderr, "failed to set up debug messenger!\n"); - } + if (CreateDebugUtilsMessengerEXT(app->instance, &createInfo, NULL, + &app->debugMessenger) != VK_SUCCESS) { + fprintf(stderr, "failed to set up debug messenger!\n"); } } void DestroyDebugUtilsMessengerEXT(VkInstance instance, - VkDebugUtilsMessengerEXT *debugMessenger, + VkDebugUtilsMessengerEXT debugMessenger, const VkAllocationCallbacks *pAllocator) { PFN_vkDestroyDebugUtilsMessengerEXT func = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT"); if (func != NULL) { - func(instance, *debugMessenger, pAllocator); + func(instance, debugMessenger, pAllocator); } } void initVulkan(Application *app) { - setupDebugMessenger(app); createInstance(app); + setupDebugMessenger(app); } void mainLoop(Application *app) { while (!glfwWindowShouldClose(app->window)) { @@ -225,7 +228,7 @@ void mainLoop(Application *app) { } void cleanup(Application *app) { if (enableValidationLayers) { - DestroyDebugUtilsMessengerEXT(app->instance, &app->debugMessenger, NULL); + DestroyDebugUtilsMessengerEXT(app->instance, app->debugMessenger, NULL); } vkDestroyInstance(app->instance, NULL); glfwDestroyWindow(app->window);