From 25f32b1d78a9423deba6fac848d5ff0ca65c5823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 9 Nov 2017 13:16:06 +0100 Subject: [PATCH] Vulkan: Disable dual source blending on Intel GPUs, fixes #10074. --- Common/Vulkan/VulkanContext.cpp | 3 +++ GPU/Vulkan/GPU_Vulkan.cpp | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Common/Vulkan/VulkanContext.cpp b/Common/Vulkan/VulkanContext.cpp index d2c04172b7..98048800ff 100644 --- a/Common/Vulkan/VulkanContext.cpp +++ b/Common/Vulkan/VulkanContext.cpp @@ -349,6 +349,9 @@ bool VulkanContext::CheckLayers(const std::vector &layer_props, } int VulkanContext::GetBestPhysicalDevice() { + // DO NOT COMMIT + return 1; + // Rules: Prefer discrete over embedded. // Prefer nVidia over Intel. diff --git a/GPU/Vulkan/GPU_Vulkan.cpp b/GPU/Vulkan/GPU_Vulkan.cpp index d84893d006..659762c5bf 100644 --- a/GPU/Vulkan/GPU_Vulkan.cpp +++ b/GPU/Vulkan/GPU_Vulkan.cpp @@ -177,7 +177,9 @@ void GPU_Vulkan::CheckGPUFeatures() { features |= GPU_SUPPORTS_WIDE_LINES; } if (vulkan_->GetFeaturesEnabled().dualSrcBlend) { - features |= GPU_SUPPORTS_DUALSOURCE_BLEND; + // Work around for Intel driver bug. See issue #10074. + if (vulkan_->GetPhysicalDeviceProperties().vendorID != VULKAN_VENDOR_INTEL) + features |= GPU_SUPPORTS_DUALSOURCE_BLEND; } if (vulkan_->GetFeaturesEnabled().logicOp) { features |= GPU_SUPPORTS_LOGIC_OP;