From 62a5e6e8bdac7c65621691bc2e9e3b9c37d5c8eb Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 15 Jan 2019 13:40:57 +0000 Subject: [PATCH] Error if an unsupported device extension is used. Refs #1238 --- .../driver/vulkan/wrappers/vk_device_funcs.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp index 7686173f3..d7e2bc56d 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp @@ -413,7 +413,9 @@ VkResult WrappedVulkan::vkCreateInstance(const VkInstanceCreateInfo *pCreateInfo { RDCERR("RenderDoc does not support instance extension '%s'.", modifiedCreateInfo.ppEnabledExtensionNames[i]); - RDCERR("File an issue on github to request support: https://github.com/baldurk/renderdoc"); + RDCERR( + "For KHR/EXT extensions file an issue on github to request support: " + "https://github.com/baldurk/renderdoc"); // see if any debug report callbacks were passed in the pNext chain VkDebugReportCallbackCreateInfoEXT *report = @@ -1935,6 +1937,20 @@ VkResult WrappedVulkan::vkCreateDevice(VkPhysicalDevice physicalDevice, { VkDeviceCreateInfo createInfo = *pCreateInfo; + for(uint32_t i = 0; i < createInfo.enabledExtensionCount; i++) + { + if(!IsSupportedExtension(createInfo.ppEnabledExtensionNames[i])) + { + RDCERR("RenderDoc does not support device extension '%s'.", + createInfo.ppEnabledExtensionNames[i]); + RDCERR( + "For KHR/EXT extensions file an issue on github to request support: " + "https://github.com/baldurk/renderdoc"); + + return VK_ERROR_EXTENSION_NOT_PRESENT; + } + } + uint32_t qCount = 0; VkResult vkr = VK_SUCCESS;