Fix some shader problems caused by my previous commits to reduce API calls (back screen after a while in Zelda WW intro, maybe also in other games).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4283 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
20922cf3f0
commit
f7e15ec7f2
|
@ -89,7 +89,7 @@ bool PixelShaderCache::SetShader(bool dstAlpha)
|
|||
|
||||
PIXELSHADERUID uid;
|
||||
GetPixelShaderId(uid, PixelShaderManager::GetTextureMask(), dstAlpha);
|
||||
if (uid == last_pixel_shader_uid)
|
||||
if (uid == last_pixel_shader_uid && PixelShaders[uid].frameCount == frameCount)
|
||||
{
|
||||
PSCache::const_iterator iter = PixelShaders.find(uid);
|
||||
if (iter != PixelShaders.end() && iter->second.shader)
|
||||
|
|
|
@ -120,7 +120,7 @@ bool VertexShaderCache::SetShader(u32 components)
|
|||
|
||||
VERTEXSHADERUID uid;
|
||||
GetVertexShaderId(uid, components);
|
||||
if (uid == last_vertex_shader_uid)
|
||||
if (uid == last_vertex_shader_uid && vshaders[uid].frameCount == frameCount)
|
||||
{
|
||||
if (vshaders[uid].shader)
|
||||
return true;
|
||||
|
|
|
@ -169,7 +169,7 @@ FRAGMENTSHADER* PixelShaderCache::GetShader(bool dstAlphaEnable)
|
|||
PIXELSHADERUID uid;
|
||||
u32 dstAlpha = dstAlphaEnable ? 1 : 0;
|
||||
GetPixelShaderId(uid, PixelShaderManager::GetTextureMask(), dstAlpha);
|
||||
if (uid == last_pixel_shader_uid)
|
||||
if (uid == last_pixel_shader_uid && pshaders[uid].frameCount == frameCount)
|
||||
{
|
||||
return pShaderLast;
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ VERTEXSHADER* VertexShaderCache::GetShader(u32 components)
|
|||
VERTEXSHADERUID uid;
|
||||
GetVertexShaderId(uid, components);
|
||||
|
||||
if (uid == last_vertex_shader_uid)
|
||||
if (uid == last_vertex_shader_uid && vshaders[uid].frameCount == frameCount)
|
||||
{
|
||||
return pShaderLast;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue