Use VK_EXT_debug_utils in testbed program

This commit is contained in:
baldurk
2019-04-01 15:23:27 +01:00
parent fa06d29077
commit 1cada82d2f
4 changed files with 37 additions and 17 deletions
+1 -1
View File
@@ -3340,8 +3340,8 @@ VkBool32 VKAPI_PTR WrappedVulkan::DebugUtilsCallbackStatic(
while(c > pMessageId && *c >= '0' && *c <= '9')
{
mult *= 10;
messageCode += mult * int(*c - '0');
mult *= 10;
c--;
}
}
+21
View File
@@ -213,6 +213,27 @@ struct DebugReportCallbackCreateInfoEXT : public VkDebugReportCallbackCreateInfo
operator const VkDebugReportCallbackCreateInfoEXT *() const { return this; }
};
struct DebugUtilsMessengerCreateInfoEXT : public VkDebugUtilsMessengerCreateInfoEXT
{
DebugUtilsMessengerCreateInfoEXT(
PFN_vkDebugUtilsMessengerCallbackEXT callback, void *userData = NULL,
VkDebugUtilsMessageSeverityFlagsEXT severity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT,
VkDebugUtilsMessageTypeFlagsEXT type = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
VkDebugUtilsMessengerCreateFlagsEXT flags = 0)
{
sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
pNext = NULL;
this->flags = flags;
this->messageSeverity = severity;
this->messageType = type;
this->pfnUserCallback = callback;
this->pUserData = userData;
}
operator const VkDebugUtilsMessengerCreateInfoEXT *() const { return this; }
};
struct DeviceQueueCreateInfo : public VkDeviceQueueCreateInfo
{
DeviceQueueCreateInfo(uint32_t queueFamilyIndex, uint32_t queueCount,
+14 -15
View File
@@ -44,13 +44,12 @@
#include "../linux/linux_window.h"
#endif
static VkBool32 VKAPI_PTR vulkanCallback(VkDebugReportFlagsEXT flags,
VkDebugReportObjectTypeEXT objectType, uint64_t object,
size_t location, int32_t messageCode,
const char *pLayerPrefix, const char *pMessage,
static VkBool32 VKAPI_PTR vulkanCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT messageTypes,
const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData,
void *pUserData)
{
TEST_WARN("Vulkan message: [%s] %s", pLayerPrefix, pMessage);
TEST_WARN("Vulkan message: [%s] %s", pCallbackData->pMessageIdName, pCallbackData->pMessage);
return false;
}
@@ -88,9 +87,9 @@ bool VulkanGraphicsTest::Init(int argc, char **argv)
#endif
if(debugDevice)
instExts.push_back(VK_EXT_DEBUG_REPORT_EXTENSION_NAME);
optInstExts.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
instExts.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
else
optInstExts.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
std::vector<const char *> layers;
@@ -157,11 +156,11 @@ bool VulkanGraphicsTest::Init(int argc, char **argv)
if(debugDevice)
{
CHECK_VKR(vkCreateDebugReportCallbackEXT(
instance,
vkh::DebugReportCallbackCreateInfoEXT(
VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT, &vulkanCallback),
NULL, &debugReportCallback));
CHECK_VKR(vkCreateDebugUtilsMessengerEXT(
instance, vkh::DebugUtilsMessengerCreateInfoEXT(
&vulkanCallback, NULL, VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT |
VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT),
NULL, &debugUtilsMessenger));
}
std::vector<VkPhysicalDevice> physDevices;
@@ -463,8 +462,8 @@ VulkanGraphicsTest::~VulkanGraphicsTest()
vkDestroyDevice(device, NULL);
}
if(debugReportCallback)
vkDestroyDebugReportCallbackEXT(instance, debugReportCallback, NULL);
if(debugUtilsMessenger)
vkDestroyDebugUtilsMessengerEXT(instance, debugUtilsMessenger, NULL);
if(surface)
vkDestroySurfaceKHR(instance, surface, NULL);
+1 -1
View File
@@ -216,7 +216,7 @@ struct VulkanGraphicsTest : public GraphicsTest
std::vector<VkFramebuffer> swapFramebuffers;
// utilities
VkDebugReportCallbackEXT debugReportCallback;
VkDebugUtilsMessengerEXT debugUtilsMessenger;
VkCommandPool cmdPool;
// tracking object lifetimes