From e08e9d8e89d1feb4172aa4244032a192e890faba Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 2 Mar 2014 20:09:18 -0800 Subject: [PATCH] Flush if morphing, even if only weight changed. Fixes more graphical glitches that happen when software skinning is enabled. --- GPU/GLES/GLES_GPU.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GPU/GLES/GLES_GPU.cpp b/GPU/GLES/GLES_GPU.cpp index e78da59a17..e155c7ce4b 100644 --- a/GPU/GLES/GLES_GPU.cpp +++ b/GPU/GLES/GLES_GPU.cpp @@ -882,7 +882,8 @@ void GLES_GPU::ExecuteOpInternal(u32 op, u32 diff) { if (diff & (GE_VTYPE_TC_MASK | GE_VTYPE_THROUGH_MASK)) shaderManager_->DirtyUniform(DIRTY_UVSCALEOFFSET); } else { - if (diff & ~GE_VTYPE_WEIGHTCOUNT_MASK) { + // Don't flush when weight count changes, unless morph is enabled. + if ((diff & ~GE_VTYPE_WEIGHTCOUNT_MASK) || (data & GE_VTYPE_MORPHCOUNT_MASK) != 0) { // Restore and flush gstate.vertType ^= diff; Flush();