From 401216608573182b0ece84ceaa9d2cdfb60fe757 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Thu, 9 Mar 2017 23:39:48 +1000 Subject: VideoCommon: Fix crash at startup with virtual XFB enabled --- Source/Core/VideoCommon/RenderBase.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'Source/Core/VideoCommon/RenderBase.cpp') diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index 7e598e2373..a7d72d4929 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -84,8 +84,8 @@ Renderer::Renderer(int backbuffer_width, int backbuffer_height) FramebufferManagerBase::SetLastXfbHeight(MAX_XFB_HEIGHT); UpdateActiveConfig(); - CalculateTargetSize(); UpdateDrawRectangle(); + CalculateTargetSize(); OSDChoice = 0; OSDTime = 0; @@ -127,7 +127,7 @@ int Renderer::EFBToScaledX(int x) switch (g_ActiveConfig.iEFBScale) { case SCALE_AUTO: // fractional - return FramebufferManagerBase::ScaleToVirtualXfbWidth(x); + return FramebufferManagerBase::ScaleToVirtualXfbWidth(x, m_target_rectangle); default: return x * (int)m_efb_scale_numeratorX / (int)m_efb_scale_denominatorX; @@ -139,7 +139,7 @@ int Renderer::EFBToScaledY(int y) switch (g_ActiveConfig.iEFBScale) { case SCALE_AUTO: // fractional - return FramebufferManagerBase::ScaleToVirtualXfbHeight(y); + return FramebufferManagerBase::ScaleToVirtualXfbHeight(y, m_target_rectangle); default: return y * (int)m_efb_scale_numeratorY / (int)m_efb_scale_denominatorY; @@ -173,8 +173,8 @@ bool Renderer::CalculateTargetSize() { case SCALE_AUTO: case SCALE_AUTO_INTEGRAL: - newEFBWidth = FramebufferManagerBase::ScaleToVirtualXfbWidth(EFB_WIDTH); - newEFBHeight = FramebufferManagerBase::ScaleToVirtualXfbHeight(EFB_HEIGHT); + newEFBWidth = FramebufferManagerBase::ScaleToVirtualXfbWidth(EFB_WIDTH, m_target_rectangle); + newEFBHeight = FramebufferManagerBase::ScaleToVirtualXfbHeight(EFB_HEIGHT, m_target_rectangle); if (m_last_efb_scale == SCALE_AUTO_INTEGRAL) { -- cgit v1.2.3 From 2cd240af0d261d4600e273badd912570a5a09a19 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Fri, 10 Mar 2017 00:01:23 +1000 Subject: VideoBackends: Move max texture size to VideoConfig This stops the virtual method call from within the Renderer constructor. The initialization here for GL had to be moved to VideoBackend, as the Renderer constructor will not have been executed before the value is required. --- Source/Core/VideoCommon/RenderBase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Core/VideoCommon/RenderBase.cpp') diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index a7d72d4929..1c99e51950 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -217,7 +217,7 @@ bool Renderer::CalculateTargetSize() m_efb_scale_numeratorX = m_efb_scale_numeratorY = m_last_efb_scale - 3; m_efb_scale_denominatorX = m_efb_scale_denominatorY = 1; - const u32 max_size = GetMaxTextureSize(); + const u32 max_size = g_ActiveConfig.backend_info.MaxTextureSize; if (max_size < EFB_WIDTH * m_efb_scale_numeratorX / m_efb_scale_denominatorX) { m_efb_scale_numeratorX = m_efb_scale_numeratorY = (max_size / EFB_WIDTH); -- cgit v1.2.3