Vulkan: Attach debug utils to GPU_debug_group. #107217
|
@ -27,14 +27,14 @@ VkComponentMapping to_vk_component_mapping(const eGPUTextureFormat format);
|
|||
VkImageViewType to_vk_image_view_type(const eGPUTextureType type);
|
||||
VkImageType to_vk_image_type(const eGPUTextureType type);
|
||||
VkClearColorValue to_vk_clear_color_value(const eGPUDataFormat format, const void *data);
|
||||
#ifdef __cplusplus
|
||||
|
||||
template<typename T> VkObjectType to_vk_object_type(T /*vk_obj*/)
|
||||
{
|
||||
const std::type_info &tid = typeid(T);
|
||||
# define VK_EQ_TYPEID(name, name2) \
|
||||
if (tid == typeid(name)) { \
|
||||
return VK_OBJECT_TYPE_##name2; \
|
||||
}
|
||||
#define VK_EQ_TYPEID(name, name2) \
|
||||
if (tid == typeid(name)) { \
|
||||
return VK_OBJECT_TYPE_##name2; \
|
||||
}
|
||||
|
||||
VK_EQ_TYPEID(VkInstance, INSTANCE);
|
||||
VK_EQ_TYPEID(VkPhysicalDevice, PHYSICAL_DEVICE);
|
||||
|
@ -68,12 +68,12 @@ template<typename T> VkObjectType to_vk_object_type(T /*vk_obj*/)
|
|||
VK_EQ_TYPEID(VkDisplayKHR, DISPLAY_KHR);
|
||||
VK_EQ_TYPEID(VkDisplayModeKHR, DISPLAY_MODE_KHR);
|
||||
VK_EQ_TYPEID(VkDebugReportCallbackEXT, DEBUG_REPORT_CALLBACK_EXT);
|
||||
# ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||
VK_EQ_TYPEID(VkVideoSessionKHR, VIDEO_SESSION_KHR);
|
||||
# endif
|
||||
# ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||
#endif
|
||||
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||
VK_EQ_TYPEID(VkVideoSessionParametersKHR, VIDEO_SESSION_PARAMETERS_KHR);
|
||||
# endif
|
||||
#endif
|
||||
VK_EQ_TYPEID(VkCuModuleNVX, CU_MODULE_NVX);
|
||||
VK_EQ_TYPEID(VkCuFunctionNVX, CU_FUNCTION_NVX);
|
||||
VK_EQ_TYPEID(VkDebugUtilsMessengerEXT, DEBUG_UTILS_MESSENGER_EXT);
|
||||
|
@ -86,8 +86,8 @@ template<typename T> VkObjectType to_vk_object_type(T /*vk_obj*/)
|
|||
VK_EQ_TYPEID(VkPrivateDataSlotEXT, PRIVATE_DATA_SLOT_EXT);
|
||||
|
||||
BLI_assert_unreachable();
|
||||
# undef VK_EQ_TYPEID
|
||||
#undef VK_EQ_TYPEID
|
||||
return VK_OBJECT_TYPE_UNKNOWN;
|
||||
}
|
||||
#endif
|
||||
|
||||
} // namespace blender::gpu
|
||||
|
|
|
@ -12,9 +12,15 @@
|
|||
#include "vk_debug.hh"
|
||||
|
||||
namespace blender::gpu {
|
||||
void VKContext::debug_group_begin(const char *, int) {}
|
||||
void VKContext::debug_group_begin(const char *name, int)
|
||||
{
|
||||
debug::push_marker(this, vk_queue_, name);
|
||||
}
|
||||
|
||||
void VKContext::debug_group_end() {}
|
||||
void VKContext::debug_group_end()
|
||||
{
|
||||
debug::pop_marker(this, vk_queue_);
|
||||
}
|
||||
|
||||
bool VKContext::debug_capture_begin()
|
||||
{
|
||||
|
@ -60,7 +66,8 @@ void VKContext::debug_capture_scope_end(void * /*scope*/) {}
|
|||
|
||||
namespace blender::gpu::debug {
|
||||
|
||||
static void load_dynamic_functions(VKContext *context, PFN_vkGetInstanceProcAddr instance_proc_addr)
|
||||
static void load_dynamic_functions(VKContext *context,
|
||||
PFN_vkGetInstanceProcAddr instance_proc_addr)
|
||||
{
|
||||
VKDebuggingTools &debugging_tools = context->debugging_tools_get();
|
||||
VkInstance vk_instance = context->instance_get();
|
||||
|
@ -68,28 +75,28 @@ static void load_dynamic_functions(VKContext *context, PFN_vkGetInstanceProcAddr
|
|||
if (instance_proc_addr) {
|
||||
|
||||
debugging_tools.enabled = false;
|
||||
debugging_tools.vkCmdBeginDebugUtilsLabelEXT_r = (PFN_vkCmdBeginDebugUtilsLabelEXT)instance_proc_addr(
|
||||
vk_instance, "vkCmdBeginDebugUtilsLabelEXT");
|
||||
debugging_tools.vkCmdEndDebugUtilsLabelEXT_r = (PFN_vkCmdEndDebugUtilsLabelEXT)instance_proc_addr(
|
||||
vk_instance, "vkCmdEndDebugUtilsLabelEXT");
|
||||
debugging_tools.vkCmdInsertDebugUtilsLabelEXT_r = (PFN_vkCmdInsertDebugUtilsLabelEXT)instance_proc_addr(
|
||||
vk_instance, "vkCmdInsertDebugUtilsLabelEXT");
|
||||
debugging_tools.vkCreateDebugUtilsMessengerEXT_r = (PFN_vkCreateDebugUtilsMessengerEXT)instance_proc_addr(
|
||||
vk_instance, "vkCreateDebugUtilsMessengerEXT");
|
||||
debugging_tools.vkDestroyDebugUtilsMessengerEXT_r = (PFN_vkDestroyDebugUtilsMessengerEXT)instance_proc_addr(
|
||||
vk_instance, "vkDestroyDebugUtilsMessengerEXT");
|
||||
debugging_tools.vkQueueBeginDebugUtilsLabelEXT_r = (PFN_vkQueueBeginDebugUtilsLabelEXT)instance_proc_addr(
|
||||
vk_instance, "vkQueueBeginDebugUtilsLabelEXT");
|
||||
debugging_tools.vkQueueEndDebugUtilsLabelEXT_r = (PFN_vkQueueEndDebugUtilsLabelEXT)instance_proc_addr(
|
||||
vk_instance, "vkQueueEndDebugUtilsLabelEXT");
|
||||
debugging_tools.vkQueueInsertDebugUtilsLabelEXT_r = (PFN_vkQueueInsertDebugUtilsLabelEXT)instance_proc_addr(
|
||||
vk_instance, "vkQueueInsertDebugUtilsLabelEXT");
|
||||
debugging_tools.vkSetDebugUtilsObjectNameEXT_r = (PFN_vkSetDebugUtilsObjectNameEXT)instance_proc_addr(
|
||||
vk_instance, "vkSetDebugUtilsObjectNameEXT");
|
||||
debugging_tools.vkSetDebugUtilsObjectTagEXT_r = (PFN_vkSetDebugUtilsObjectTagEXT)instance_proc_addr(
|
||||
vk_instance, "vkSetDebugUtilsObjectTagEXT");
|
||||
debugging_tools.vkSubmitDebugUtilsMessageEXT_r = (PFN_vkSubmitDebugUtilsMessageEXT)instance_proc_addr(
|
||||
vk_instance, "vkSubmitDebugUtilsMessageEXT");
|
||||
debugging_tools.vkCmdBeginDebugUtilsLabelEXT_r = (PFN_vkCmdBeginDebugUtilsLabelEXT)
|
||||
instance_proc_addr(vk_instance, "vkCmdBeginDebugUtilsLabelEXT");
|
||||
debugging_tools.vkCmdEndDebugUtilsLabelEXT_r = (PFN_vkCmdEndDebugUtilsLabelEXT)
|
||||
instance_proc_addr(vk_instance, "vkCmdEndDebugUtilsLabelEXT");
|
||||
debugging_tools.vkCmdInsertDebugUtilsLabelEXT_r = (PFN_vkCmdInsertDebugUtilsLabelEXT)
|
||||
instance_proc_addr(vk_instance, "vkCmdInsertDebugUtilsLabelEXT");
|
||||
debugging_tools.vkCreateDebugUtilsMessengerEXT_r = (PFN_vkCreateDebugUtilsMessengerEXT)
|
||||
instance_proc_addr(vk_instance, "vkCreateDebugUtilsMessengerEXT");
|
||||
debugging_tools.vkDestroyDebugUtilsMessengerEXT_r = (PFN_vkDestroyDebugUtilsMessengerEXT)
|
||||
instance_proc_addr(vk_instance, "vkDestroyDebugUtilsMessengerEXT");
|
||||
debugging_tools.vkQueueBeginDebugUtilsLabelEXT_r = (PFN_vkQueueBeginDebugUtilsLabelEXT)
|
||||
instance_proc_addr(vk_instance, "vkQueueBeginDebugUtilsLabelEXT");
|
||||
debugging_tools.vkQueueEndDebugUtilsLabelEXT_r = (PFN_vkQueueEndDebugUtilsLabelEXT)
|
||||
instance_proc_addr(vk_instance, "vkQueueEndDebugUtilsLabelEXT");
|
||||
debugging_tools.vkQueueInsertDebugUtilsLabelEXT_r = (PFN_vkQueueInsertDebugUtilsLabelEXT)
|
||||
instance_proc_addr(vk_instance, "vkQueueInsertDebugUtilsLabelEXT");
|
||||
debugging_tools.vkSetDebugUtilsObjectNameEXT_r = (PFN_vkSetDebugUtilsObjectNameEXT)
|
||||
instance_proc_addr(vk_instance, "vkSetDebugUtilsObjectNameEXT");
|
||||
debugging_tools.vkSetDebugUtilsObjectTagEXT_r = (PFN_vkSetDebugUtilsObjectTagEXT)
|
||||
instance_proc_addr(vk_instance, "vkSetDebugUtilsObjectTagEXT");
|
||||
debugging_tools.vkSubmitDebugUtilsMessageEXT_r = (PFN_vkSubmitDebugUtilsMessageEXT)
|
||||
instance_proc_addr(vk_instance, "vkSubmitDebugUtilsMessageEXT");
|
||||
if (debugging_tools.vkCmdBeginDebugUtilsLabelEXT_r) {
|
||||
debugging_tools.enabled = true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue