]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/module_backend.cpp
Set debug names for shader modules on Vulkan
[libs/gl.git] / source / backends / vulkan / module_backend.cpp
index 759497ab6ed1fb9252a21abfe8c30c7ce271cf25..7ec198e0ec3f52de1696523e83a92eddeb129cb1 100644 (file)
@@ -39,6 +39,34 @@ void VulkanSpirVModule::create()
        module_info.pCode = code.data();
 
        vk.CreateShaderModule(module_info, handle);
+
+       if(!debug_name.empty())
+               set_vulkan_object_name();
+}
+
+void VulkanSpirVModule::set_debug_name(const string &name)
+{
+#ifdef DEBUG
+       debug_name = name;
+       if(handle)
+               set_vulkan_object_name();
+#else
+       (void)name;
+#endif
+}
+
+void VulkanSpirVModule::set_vulkan_object_name() const
+{
+#ifdef DEBUG
+       const VulkanFunctions &vk = device.get_functions();
+
+       VkDebugUtilsObjectNameInfoEXT name_info = { };
+       name_info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
+       name_info.objectType = VK_OBJECT_TYPE_SHADER_MODULE;
+       name_info.objectHandle = reinterpret_cast<uint64_t>(handle);
+       name_info.pObjectName = debug_name.c_str();
+       vk.SetDebugUtilsObjectName(name_info);
+#endif
 }