Only set uniform variables as dirty when there's a difference in value.

This commit is contained in:
Henrik Rydgard 2013-06-24 19:25:22 +02:00
parent afb596f3c3
commit f3c227041d

View File

@ -510,22 +510,26 @@ void GLES_GPU::ExecuteOp(u32 op, u32 diff) {
case GE_CMD_TEXSCALEU:
gstate_c.uScale = getFloat24(data);
shaderManager_->DirtyUniform(DIRTY_UVSCALEOFFSET);
if (diff)
shaderManager_->DirtyUniform(DIRTY_UVSCALEOFFSET);
break;
case GE_CMD_TEXSCALEV:
gstate_c.vScale = getFloat24(data);
shaderManager_->DirtyUniform(DIRTY_UVSCALEOFFSET);
if (diff)
shaderManager_->DirtyUniform(DIRTY_UVSCALEOFFSET);
break;
case GE_CMD_TEXOFFSETU:
gstate_c.uOff = getFloat24(data);
shaderManager_->DirtyUniform(DIRTY_UVSCALEOFFSET);
if (diff)
shaderManager_->DirtyUniform(DIRTY_UVSCALEOFFSET);
break;
case GE_CMD_TEXOFFSETV:
gstate_c.vOff = getFloat24(data);
shaderManager_->DirtyUniform(DIRTY_UVSCALEOFFSET);
if (diff)
shaderManager_->DirtyUniform(DIRTY_UVSCALEOFFSET);
break;
case GE_CMD_SCISSOR1:
@ -794,7 +798,8 @@ void GLES_GPU::ExecuteOp(u32 op, u32 diff) {
case GE_CMD_COLORTEST:
case GE_CMD_COLORTESTMASK:
shaderManager_->DirtyUniform(DIRTY_COLORMASK);
if (diff)
shaderManager_->DirtyUniform(DIRTY_COLORMASK);
break;
case GE_CMD_ALPHATEST:
@ -803,11 +808,13 @@ void GLES_GPU::ExecuteOp(u32 op, u32 diff) {
WARN_LOG_REPORT_ONCE(alphatestmask, HLE, "Unsupported alphatest mask: %02x", (data >> 16) & 0xFF);
#endif
case GE_CMD_COLORREF:
shaderManager_->DirtyUniform(DIRTY_ALPHACOLORREF);
if (diff)
shaderManager_->DirtyUniform(DIRTY_ALPHACOLORREF);
break;
case GE_CMD_TEXENVCOLOR:
shaderManager_->DirtyUniform(DIRTY_TEXENV);
if (diff)
shaderManager_->DirtyUniform(DIRTY_TEXENV);
break;
case GE_CMD_TEXFUNC: