From daabcfd6fc520ff84cd488a03b76c4cdf4a2de2a Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Wed, 29 Oct 2014 19:50:39 -0500 Subject: [PATCH] Removes Qualcomm's rotated framebuffer bug from DriverDetails. Due to changes in how we render to the final framebuffer we no longer encounter this bug. With the change to post processing being enabled at all times and no longer using glBlitFramebuffer, Qualcomm no longer has the chance to rotate our framebuffer underneath of us. --- Source/Core/VideoBackends/OGL/Render.cpp | 11 ++--------- Source/Core/VideoCommon/DriverDetails.cpp | 1 - Source/Core/VideoCommon/DriverDetails.h | 9 --------- 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp index 69dbd4052f..1479107cc6 100644 --- a/Source/Core/VideoBackends/OGL/Render.cpp +++ b/Source/Core/VideoBackends/OGL/Render.cpp @@ -1395,15 +1395,8 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, co UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); TargetRectangle flipped_trc = GetTargetRectangle(); - if (DriverDetails::HasBug(DriverDetails::BUG_ROTATEDFRAMEBUFFER)) - { - std::swap(flipped_trc.left, flipped_trc.right); - } - else - { - // Flip top and bottom for some reason; TODO: Fix the code to suck less? - std::swap(flipped_trc.top, flipped_trc.bottom); - } + // Flip top and bottom for some reason; TODO: Fix the code to suck less? + std::swap(flipped_trc.top, flipped_trc.bottom); // Copy the framebuffer to screen. const XFBSource* xfbSource = nullptr; diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp index 4d0d03d0d0..260a2ca63f 100644 --- a/Source/Core/VideoCommon/DriverDetails.cpp +++ b/Source/Core/VideoCommon/DriverDetails.cpp @@ -47,7 +47,6 @@ namespace DriverDetails {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENSWAP, -1.0, 46.0, true}, {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true}, {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_BROKENTEXTURESIZE, -1.0, 65.0, true}, - {OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, -1, BUG_ROTATEDFRAMEBUFFER, 53.0, 65.0, true}, {OS_ALL, VENDOR_ARM, DRIVER_ARM_MIDGARD, -1, BUG_BROKENBUFFERSTREAM, -1.0, -1.0, true}, {OS_ALL, VENDOR_MESA, DRIVER_NOUVEAU, -1, BUG_BROKENUBO, 900, 916, true}, {OS_ALL, VENDOR_MESA, DRIVER_R600, -1, BUG_BROKENUBO, 900, 913, true}, diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h index 3c65258c8c..2571c2f1a8 100644 --- a/Source/Core/VideoCommon/DriverDetails.h +++ b/Source/Core/VideoCommon/DriverDetails.h @@ -162,15 +162,6 @@ namespace DriverDetails // TODO: some windows AMD driver/gpu combination seems also affected // but as they all support pinned memory, it doesn't matter BUG_BROKENUNSYNCMAPPING, - // Bug: Adreno now rotates the framebuffer on blit a full 180 degrees - // Affected devices: Adreno - // Started Version: v53 (dev drivers) - // Ended Version: v66 (07-14-2014 dev drivers) - // Qualcomm is a super pro company that has recently updated their development drivers - // These drivers are available to the Nexus 5 and report as v53 - // Qualcomm in their infinite wisdom thought it was a good idea to rotate the framebuffer 180 degrees on glBlit - // This bug allows us to work around that rotation by rotating it the right way around again. - BUG_ROTATEDFRAMEBUFFER, // Bug: Intel's Window driver broke buffer_storage with GL_ELEMENT_ARRAY_BUFFER // Affected devices: Intel (Windows) // Started Version: 15.36.3.64.3907 (10.18.10.3907)