diff --git a/GPU/D3D11/GPU_D3D11.cpp b/GPU/D3D11/GPU_D3D11.cpp index 51c20b305e..053116a0e2 100644 --- a/GPU/D3D11/GPU_D3D11.cpp +++ b/GPU/D3D11/GPU_D3D11.cpp @@ -131,9 +131,10 @@ void GPU_D3D11::CheckGPUFeatures() { features |= GPU_SUPPORTS_CULL_DISTANCE; if (!draw_->GetBugs().Has(Draw::Bugs::BROKEN_NAN_IN_CONDITIONAL)) { // Ignore the compat setting if clip and cull are both enabled. + // When supported, we can do the depth side of range culling more correctly. const bool supported = draw_->GetDeviceCaps().clipDistanceSupported && draw_->GetDeviceCaps().cullDistanceSupported; const bool disabled = PSP_CoreParameter().compat.flags().DisableRangeCulling; - if (!supported && !disabled) { + if (supported && !disabled) { features |= GPU_SUPPORTS_VS_RANGE_CULLING; } } diff --git a/GPU/GLES/GPU_GLES.cpp b/GPU/GLES/GPU_GLES.cpp index fbbb8217ea..0e7fa660e8 100644 --- a/GPU/GLES/GPU_GLES.cpp +++ b/GPU/GLES/GPU_GLES.cpp @@ -228,9 +228,10 @@ void GPU_GLES::CheckGPUFeatures() { features |= GPU_SUPPORTS_CULL_DISTANCE; if (!draw_->GetBugs().Has(Draw::Bugs::BROKEN_NAN_IN_CONDITIONAL)) { // Ignore the compat setting if clip and cull are both enabled. + // When supported, we can do the depth side of range culling more correctly. const bool supported = draw_->GetDeviceCaps().clipDistanceSupported && draw_->GetDeviceCaps().cullDistanceSupported; const bool disabled = PSP_CoreParameter().compat.flags().DisableRangeCulling; - if (!supported && !disabled) { + if (supported && !disabled) { features |= GPU_SUPPORTS_VS_RANGE_CULLING; } } diff --git a/GPU/Vulkan/GPU_Vulkan.cpp b/GPU/Vulkan/GPU_Vulkan.cpp index e49b959e02..e5ac26f953 100644 --- a/GPU/Vulkan/GPU_Vulkan.cpp +++ b/GPU/Vulkan/GPU_Vulkan.cpp @@ -246,9 +246,10 @@ void GPU_Vulkan::CheckGPUFeatures() { } if (!draw_->GetBugs().Has(Draw::Bugs::BROKEN_NAN_IN_CONDITIONAL)) { // Ignore the compat setting if clip and cull are both enabled. + // When supported, we can do the depth side of range culling more correctly. const bool supported = draw_->GetDeviceCaps().clipDistanceSupported && draw_->GetDeviceCaps().cullDistanceSupported; const bool disabled = PSP_CoreParameter().compat.flags().DisableRangeCulling; - if (!supported && !disabled) { + if (supported && !disabled) { features |= GPU_SUPPORTS_VS_RANGE_CULLING; } }