From 20a68e1e9d22e320f05d68b1928be14ac858965b Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Sat, 4 Jul 2026 17:59:07 -0400 Subject: [PATCH] [vulkan, qcom] Returned custom border color and derivates to QCOM drivers --- .../vulkan_common/vulkan_device.cpp | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 20c84d5f99..b68dc2f842 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -494,11 +494,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR if (is_qualcomm) { LOG_WARNING(Render_Vulkan, "Qualcomm drivers require scaled vertex format emulation"); must_emulate_scaled_formats = true; - LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken CustomBorderColor."); - RemoveExtensionFeature(extensions.custom_border_color, features.custom_border_color, - VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME); - RemoveExtensionFeature(extensions.border_color_swizzle, features.border_color_swizzle, - VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME); LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken Provoking Vertex."); RemoveExtension(extensions.provoking_vertex, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME); LOG_WARNING(Render_Vulkan, "Qualcomm drivers have slow push descriptor implementation."); @@ -1176,9 +1171,19 @@ void Device::RemoveUnsuitableExtensions() { RemoveExtensionFeatureIfUnsuitable(extensions.color_write_enable, features.color_write_enable, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME); + // VK_EXT_custom_border_color + if (extensions.custom_border_color) { + extensions.custom_border_color = + features.custom_border_color.customBorderColors && + features.custom_border_color.customBorderColorWithoutFormat; + } + RemoveExtensionFeatureIfUnsuitable(extensions.custom_border_color, features.custom_border_color, + VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME); + // VK_EXT_border_color_swizzle if (extensions.border_color_swizzle) { extensions.border_color_swizzle = + extensions.custom_border_color && features.border_color_swizzle.borderColorSwizzle && features.border_color_swizzle.borderColorSwizzleFromImage; } @@ -1186,15 +1191,6 @@ void Device::RemoveUnsuitableExtensions() { features.border_color_swizzle, VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME); - // VK_EXT_custom_border_color - if (extensions.custom_border_color) { - extensions.custom_border_color = - features.custom_border_color.customBorderColors && - features.custom_border_color.customBorderColorWithoutFormat; - } - RemoveExtensionFeatureIfUnsuitable(extensions.custom_border_color, features.custom_border_color, - VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME); - // VK_EXT_depth_bias_control extensions.depth_bias_control = features.depth_bias_control.depthBiasControl &&