VideoCommon: revert the ViewPort changes

xfregs isn't written when calling this function, so we have to use such an invalid flag :-(
This commit is contained in:
degasus 2013-10-13 15:41:11 +02:00
parent 4dc1881f58
commit 6798a4763e
1 changed files with 10 additions and 4 deletions

View File

@ -12,6 +12,7 @@
#include "RenderBase.h"
static bool s_bFogRangeAdjustChanged;
static bool s_bViewPortChanged;
static int nLightsChanged[2]; // min,max
PixelShaderConstants PixelShaderManager::constants;
@ -26,6 +27,7 @@ void PixelShaderManager::Init()
void PixelShaderManager::Dirty()
{
s_bFogRangeAdjustChanged = true;
s_bViewPortChanged = true;
nLightsChanged[0] = 0; nLightsChanged[1] = 0x80;
SetColorChanged(0, 0);
@ -133,6 +135,13 @@ void PixelShaderManager::SetConstants(u32 components)
nLightsChanged[0] = nLightsChanged[1] = -1;
}
}
if(s_bViewPortChanged)
{
constants.zbias[1][0] = xfregs.viewport.farZ / 16777216.0f;
constants.zbias[1][1] = xfregs.viewport.zRange / 16777216.0f;
dirty = true;
}
}
// This one is high in profiles (0.5%).
@ -183,10 +192,7 @@ void PixelShaderManager::SetZTextureBias()
void PixelShaderManager::SetViewportChanged()
{
constants.zbias[1][0] = xfregs.viewport.farZ / 16777216.0f;
constants.zbias[1][1] = xfregs.viewport.zRange / 16777216.0f;
dirty = true;
s_bViewPortChanged = true;
s_bFogRangeAdjustChanged = true; // TODO: Shouldn't be necessary with an accurate fog range adjust implementation
}