mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-06 14:51:04 +00:00
Use VK_EXT_debug_utils in testbed program
This commit is contained in:
@@ -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--;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ struct VulkanGraphicsTest : public GraphicsTest
|
||||
std::vector<VkFramebuffer> swapFramebuffers;
|
||||
|
||||
// utilities
|
||||
VkDebugReportCallbackEXT debugReportCallback;
|
||||
VkDebugUtilsMessengerEXT debugUtilsMessenger;
|
||||
VkCommandPool cmdPool;
|
||||
|
||||
// tracking object lifetimes
|
||||
|
||||
Reference in New Issue
Block a user