From cc89bdb4a5bfd89fce4380253139b32c2a6f7778 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Fri, 4 Aug 2023 19:27:49 +0200 Subject: [PATCH] Destroy shaders Fixes validation --- examples/shaderobjects/shaderobjects.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/shaderobjects/shaderobjects.cpp b/examples/shaderobjects/shaderobjects.cpp index 3de2d2d9..db1a073b 100644 --- a/examples/shaderobjects/shaderobjects.cpp +++ b/examples/shaderobjects/shaderobjects.cpp @@ -34,6 +34,7 @@ public: VkPhysicalDeviceDynamicRenderingFeaturesKHR enabledDynamicRenderingFeaturesKHR{}; PFN_vkCreateShadersEXT vkCreateShadersEXT; + PFN_vkDestroyShaderEXT vkDestroyShaderEXT; PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT; PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT; @@ -93,8 +94,9 @@ public: { vkDestroyPipelineLayout(device, pipelineLayout, nullptr); vkDestroyDescriptorSetLayout(device, descriptorSetLayout, nullptr); - // @todo: destroy shaders uniformBuffer.destroy(); + vkDestroyShaderEXT(device, shaders[0], nullptr); + vkDestroyShaderEXT(device, shaders[1], nullptr); } void loadAssets() @@ -399,6 +401,7 @@ public: VulkanExampleBase::prepare(); vkCreateShadersEXT = reinterpret_cast(vkGetDeviceProcAddr(device, "vkCreateShadersEXT")); + vkDestroyShaderEXT = reinterpret_cast(vkGetDeviceProcAddr(device, "vkDestroyShaderEXT")); vkCmdBindShadersEXT = reinterpret_cast(vkGetDeviceProcAddr(device, "vkCmdBindShadersEXT")); vkGetShaderBinaryDataEXT = reinterpret_cast(vkGetDeviceProcAddr(device, "vkGetShaderBinaryDataEXT"));