From e877b5019b391e9ca7b720efa683a5ef2cb8a203 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Fri, 15 Mar 2013 15:05:48 +0100 Subject: [PATCH] PixelShaderManager: Reload fog range adjustment shader constants upon viewport change. Fixes issue 5618. --- Source/Core/VideoCommon/Src/BPMemory.h | 4 ++-- Source/Core/VideoCommon/Src/PixelShaderManager.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoCommon/Src/BPMemory.h b/Source/Core/VideoCommon/Src/BPMemory.h index 0ee00f911e..4a97f04960 100644 --- a/Source/Core/VideoCommon/Src/BPMemory.h +++ b/Source/Core/VideoCommon/Src/BPMemory.h @@ -93,7 +93,7 @@ #define BPMEM_TEV_ALPHA_ENV 0xC1 // 0xC1 + (2 * 16) #define BPMEM_TEV_REGISTER_L 0xE0 // 0xE0 + (2 * 4) #define BPMEM_TEV_REGISTER_H 0xE1 // 0xE1 + (2 * 4) -#define BPMEM_FOGRANGE 0xE8 +#define BPMEM_FOGRANGE 0xE8 // 0xE8 + 6 #define BPMEM_FOGPARAM0 0xEE #define BPMEM_FOGBMAGNITUDE 0xEF #define BPMEM_FOGBEXPONENT 0xF0 @@ -988,7 +988,7 @@ struct BPMemory FourTexUnits tex[2]; //80-bf TevStageCombiner combiners[16]; //0xC0-0xDF TevReg tevregs[4]; //0xE0 - FogRangeParams fogRange; + FogRangeParams fogRange; // 0xE8 FogParams fog; //0xEE,0xEF,0xF0,0xF1,0xF2 AlphaTest alpha_test; //0xF3 ZTex1 ztex1; //0xf4,0xf5 diff --git a/Source/Core/VideoCommon/Src/PixelShaderManager.cpp b/Source/Core/VideoCommon/Src/PixelShaderManager.cpp index eaaf99fbc8..0405c998ba 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderManager.cpp @@ -413,6 +413,7 @@ void PixelShaderManager::SetZTextureBias(u32 bias) void PixelShaderManager::SetViewportChanged() { s_bDepthRangeChanged = true; + s_bFogRangeAdjustChanged = true; // TODO: Shouldn't be necessary with an accurate fog range adjust implementation } void PixelShaderManager::SetIndTexScaleChanged(u8 stagemask)