summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/RenderBase.cpp
diff options
context:
space:
mode:
authorMathew Maidment <mathew1800@gmail.com>2016-04-29 19:50:21 -0400
committerMathew Maidment <mathew1800@gmail.com>2016-04-29 19:50:21 -0400
commit9776b8db4314d8707cdb6021b9ae5d8c6c7f1874 (patch)
tree5f90d5109feaf31a7da1db7ffe02f182d9828d50 /Source/Core/VideoCommon/RenderBase.cpp
parentb99b685f2229ebdd957a91d8ae3772a4f07a0dbd (diff)
parent8c34463f14a624a7dd15cf322abd20a4e64cb404 (diff)
Merge pull request #3799 from mimimi085181/fix-auto-ir
Make integral auto IR(multiple of 640x528) work as expected
Diffstat (limited to 'Source/Core/VideoCommon/RenderBase.cpp')
-rw-r--r--Source/Core/VideoCommon/RenderBase.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp
index 212d03a939..bd187b855f 100644
--- a/Source/Core/VideoCommon/RenderBase.cpp
+++ b/Source/Core/VideoCommon/RenderBase.cpp
@@ -189,13 +189,18 @@ bool Renderer::CalculateTargetSize(unsigned int framebuffer_width, unsigned int
if (s_last_efb_scale == SCALE_AUTO_INTEGRAL)
{
- newEFBWidth = ((newEFBWidth-1) / EFB_WIDTH + 1) * EFB_WIDTH;
- newEFBHeight = ((newEFBHeight-1) / EFB_HEIGHT + 1) * EFB_HEIGHT;
+ efb_scale_numeratorX = efb_scale_numeratorY = std::max((newEFBWidth - 1) / EFB_WIDTH + 1, (newEFBHeight - 1) / EFB_HEIGHT + 1);
+ efb_scale_denominatorX = efb_scale_denominatorY = 1;
+ newEFBWidth = EFBToScaledX(EFB_WIDTH);
+ newEFBHeight = EFBToScaledY(EFB_HEIGHT);
+ }
+ else
+ {
+ efb_scale_numeratorX = newEFBWidth;
+ efb_scale_denominatorX = EFB_WIDTH;
+ efb_scale_numeratorY = newEFBHeight;
+ efb_scale_denominatorY = EFB_HEIGHT;
}
- efb_scale_numeratorX = newEFBWidth;
- efb_scale_denominatorX = EFB_WIDTH;
- efb_scale_numeratorY = newEFBHeight;
- efb_scale_denominatorY = EFB_HEIGHT;
break;
case SCALE_1X: