#include "vulkan/debug_label.hpp" namespace sophia { static PFN_vkCmdBeginDebugUtilsLabelEXT cmdBeginDebugUtilsLabel = nullptr; static PFN_vkCmdEndDebugUtilsLabelEXT cmdEndDebugUtilsLabel = nullptr; void loadDebugLabelFunctions(vk::Instance instance) { cmdBeginDebugUtilsLabel = reinterpret_cast( vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT")); cmdEndDebugUtilsLabel = reinterpret_cast( vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT")); } void beginDebugLabel(vk::CommandBuffer commandBuffer, const char* name) { if (!cmdBeginDebugUtilsLabel) { return; } VkDebugUtilsLabelEXT label{}; label.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT; label.pLabelName = name; cmdBeginDebugUtilsLabel(commandBuffer, &label); } void endDebugLabel(vk::CommandBuffer commandBuffer) { if (!cmdEndDebugUtilsLabel) { return; } cmdEndDebugUtilsLabel(commandBuffer); } } // namespace sophia