diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2016-02-22 09:32:55 -0700 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2016-02-22 09:34:25 -0700 |
| commit | 4a1f0a6b1ccc042a821442ed054dd8d51f92e8d9 (patch) | |
| tree | 9cd3628cfc5e4d93766223a8ffbb70e34cf73a4c | |
| parent | c60bd66cde8b6a5adb697c00d31ef3d2ebfaa4d8 (diff) | |
| download | usermoji-4a1f0a6b1ccc042a821442ed054dd8d51f92e8d9.tar.xz | |
demos: Properly destroy DebugReportCallback
Error resulted in warnings when shutting down tri --validate.
Also added DebugReportMessage setup.
| -rw-r--r-- | demos/tri.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/demos/tri.c b/demos/tri.c index d2d3923d..702f807a 100644 --- a/demos/tri.c +++ b/demos/tri.c @@ -249,6 +249,7 @@ struct demo { PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallback; PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallback; VkDebugReportCallbackEXT msg_callback; + PFN_vkDebugReportMessageEXT DebugReportMessage; float depthStencil; float depthIncrement; @@ -2030,11 +2031,27 @@ static void demo_init_vk(struct demo *demo) { demo->CreateDebugReportCallback = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr( demo->inst, "vkCreateDebugReportCallbackEXT"); + demo->DestroyDebugReportCallback = + (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr( + demo->inst, "vkDestroyDebugReportCallbackEXT"); if (!demo->CreateDebugReportCallback) { ERR_EXIT( "GetProcAddr: Unable to find vkCreateDebugReportCallbackEXT\n", "vkGetProcAddr Failure"); } + if (!demo->DestroyDebugReportCallback) { + ERR_EXIT( + "GetProcAddr: Unable to find vkDestroyDebugReportCallbackEXT\n", + "vkGetProcAddr Failure"); + } + demo->DebugReportMessage = + (PFN_vkDebugReportMessageEXT)vkGetInstanceProcAddr( + demo->inst, "vkDebugReportMessageEXT"); + if (!demo->DebugReportMessage) { + ERR_EXIT("GetProcAddr: Unable to find vkDebugReportMessageEXT\n", + "vkGetProcAddr Failure"); + } + VkDebugReportCallbackCreateInfoEXT dbgCreateInfo; dbgCreateInfo.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT; dbgCreateInfo.flags = @@ -2341,6 +2358,9 @@ static void demo_cleanup(struct demo *demo) { free(demo->buffers); vkDestroyDevice(demo->device, NULL); + if (demo->validate) { + demo->DestroyDebugReportCallback(demo->inst, demo->msg_callback, NULL); + } vkDestroySurfaceKHR(demo->inst, demo->surface, NULL); vkDestroyInstance(demo->inst, &demo->allocator); |
