diff options
Diffstat (limited to 'media-gfx/renderdoc/files/renderdoc-1.18-check-api-ver.patch')
-rw-r--r-- | media-gfx/renderdoc/files/renderdoc-1.18-check-api-ver.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/media-gfx/renderdoc/files/renderdoc-1.18-check-api-ver.patch b/media-gfx/renderdoc/files/renderdoc-1.18-check-api-ver.patch new file mode 100644 index 000000000000..a6af5645d14b --- /dev/null +++ b/media-gfx/renderdoc/files/renderdoc-1.18-check-api-ver.patch @@ -0,0 +1,50 @@ +From 3d49524da4a28ecc1ee1a9b3f9ec455fc0263c81 Mon Sep 17 00:00:00 2001 +From: baldurk <baldurk@baldurk.org> +Date: Mon, 31 Jan 2022 19:28:08 +0000 +Subject: [PATCH] Don't enable functionality not supported by the current + physical device + +--- + .../driver/vulkan/wrappers/vk_device_funcs.cpp | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp +index 4d342e0123..a40c52d6ef 100644 +--- a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp ++++ b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp +@@ -3171,7 +3171,7 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR, + }; + +- if(physProps.apiVersion >= VK_MAKE_VERSION(1, 2, 0)) ++ if(RDCMIN(m_EnabledExtensions.vulkanVersion, physProps.apiVersion) >= VK_MAKE_VERSION(1, 2, 0)) + { + VkPhysicalDeviceVulkan12Features avail12Features = { + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES, +@@ -3376,11 +3376,13 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi + + CheckDeviceExts(); + ++ uint32_t effectiveApiVersion = RDCMIN(m_EnabledExtensions.vulkanVersion, physProps.apiVersion); ++ + #undef CheckExt +-#define CheckExt(name, ver) \ +- if(!strcmp(createInfo.ppEnabledExtensionNames[i], "VK_" #name) || physProps.apiVersion >= ver) \ +- { \ +- m_EnabledExtensions.ext_##name = true; \ ++#define CheckExt(name, ver) \ ++ if(!strcmp(createInfo.ppEnabledExtensionNames[i], "VK_" #name) || effectiveApiVersion >= ver) \ ++ { \ ++ m_EnabledExtensions.ext_##name = true; \ + } + + for(uint32_t i = 0; i < createInfo.enabledExtensionCount; i++) +@@ -3391,7 +3393,7 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi + // for cases where a promoted extension isn't supported as the extension itself, manually + // disable them when the feature bit is false. + +- if(physProps.apiVersion >= VK_MAKE_VERSION(1, 2, 0)) ++ if(effectiveApiVersion >= VK_MAKE_VERSION(1, 2, 0)) + { + if(supportedExtensions.find(VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME) == + supportedExtensions.end() && |