From 1b2b320b3647ee2351917a13add732997aee41b4 Mon Sep 17 00:00:00 2001 From: PatrickvL Date: Mon, 25 Nov 2019 10:34:36 +0100 Subject: [PATCH] Avoid scaling factor rounding issues, by always applying g_RenderScaleFactor as a multiplier (never as a divisor). --- src/core/hle/D3D8/Direct3D9/Direct3D9.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp index b1643f8d3..1bd75782c 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp @@ -3640,9 +3640,9 @@ void ValidateRenderTargetDimensions(DWORD HostRenderTarget_Width, DWORD HostRend // Because of this, we need to validate that the associated host resource still matches the dimensions of the Xbox Render Target // If not, we must force them to be re-created // TEST CASE: Chihiro Factory Test Program - DWORD HostRenderTarget_Width_Unscaled = HostRenderTarget_Width / g_RenderScaleFactor; - DWORD HostRenderTarget_Height_Unscaled = HostRenderTarget_Height / g_RenderScaleFactor; - if (HostRenderTarget_Width_Unscaled != XboxRenderTarget_Width || HostRenderTarget_Height_Unscaled != XboxRenderTarget_Height) { + DWORD XboxRenderTarget_Width_Scaled = XboxRenderTarget_Width * g_RenderScaleFactor; + DWORD XboxRenderTarget_Height_Scaled = XboxRenderTarget_Height * g_RenderScaleFactor; + if (HostRenderTarget_Width != XboxRenderTarget_Width_Scaled || HostRenderTarget_Height != XboxRenderTarget_Height_Scaled) { LOG_TEST_CASE("Existing RenderTarget width/height changed"); if (g_pXbox_RenderTarget == g_pXbox_BackBufferSurface) {