From 2dda2bfa78d28e24f1a371d7e940a1301a0b655a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sat, 30 Dec 2017 00:09:06 +0100 Subject: [PATCH] Dual source blend: Remove bad #ifdef that killed dual src code on Android... oops. Re-enable on nVidia Shield TV/Tablet. Fixes #10136 properly. --- GPU/Common/GPUStateUtils.cpp | 2 -- GPU/GLES/GPU_GLES.cpp | 7 ------- GPU/Vulkan/GPU_Vulkan.cpp | 8 ++------ 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/GPU/Common/GPUStateUtils.cpp b/GPU/Common/GPUStateUtils.cpp index 9386758515..6060449807 100644 --- a/GPU/Common/GPUStateUtils.cpp +++ b/GPU/Common/GPUStateUtils.cpp @@ -784,12 +784,10 @@ static const BlendEq eqLookup[] = { static BlendFactor toDualSource(BlendFactor blendfunc) { switch (blendfunc) { -#if !defined(USING_GLES2) // TODO: Remove when we have better headers case BlendFactor::SRC_ALPHA: return BlendFactor::SRC1_ALPHA; case BlendFactor::ONE_MINUS_SRC_ALPHA: return BlendFactor::ONE_MINUS_SRC1_ALPHA; -#endif default: return blendfunc; } diff --git a/GPU/GLES/GPU_GLES.cpp b/GPU/GLES/GPU_GLES.cpp index 96b7763c25..b6f112a0ae 100644 --- a/GPU/GLES/GPU_GLES.cpp +++ b/GPU/GLES/GPU_GLES.cpp @@ -245,14 +245,7 @@ void GPU_GLES::CheckGPUFeatures() { features |= GPU_SUPPORTS_DUALSOURCE_BLEND; } } else { -#ifdef __ANDROID__ - // This appears to be broken on nVidia Shield TV. - if (gl_extensions.gpuVendor != GPU_VENDOR_NVIDIA) { - features |= GPU_SUPPORTS_DUALSOURCE_BLEND; - } -#else features |= GPU_SUPPORTS_DUALSOURCE_BLEND; -#endif } } diff --git a/GPU/Vulkan/GPU_Vulkan.cpp b/GPU/Vulkan/GPU_Vulkan.cpp index b7db5cd197..5bdd2fc086 100644 --- a/GPU/Vulkan/GPU_Vulkan.cpp +++ b/GPU/Vulkan/GPU_Vulkan.cpp @@ -214,12 +214,8 @@ void GPU_Vulkan::CheckGPUFeatures() { } if (vulkan_->GetFeaturesEnabled().dualSrcBlend) { switch (vulkan_->GetPhysicalDeviceProperties().vendorID) { - case VULKAN_VENDOR_NVIDIA: - // Workaround for Shield TV and Shield Tablet driver bug. - if (strcmp(vulkan_->GetPhysicalDeviceProperties().deviceName, "NVIDIA Tegra X1") != 0 && - strcmp(vulkan_->GetPhysicalDeviceProperties().deviceName, "NVIDIA Tegra K1") != 0) - features |= GPU_SUPPORTS_DUALSOURCE_BLEND; - break; + // We thought we had a bug here on nVidia but turns out we accidentally #ifdef-ed out crucial + // code on Android. case VULKAN_VENDOR_INTEL: // Workaround for Intel driver bug. break;