diff --git a/GPU/GLES/DisplayListInterpreter.cpp b/GPU/GLES/DisplayListInterpreter.cpp index 118575425e..77c118f7de 100644 --- a/GPU/GLES/DisplayListInterpreter.cpp +++ b/GPU/GLES/DisplayListInterpreter.cpp @@ -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: