From 784c191caf9497e989866bbe5814ae20ffe93693 Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Mon, 21 Jan 2013 00:34:37 +0100 Subject: [PATCH] Fix bugs with fog bit in shader IDs --- GPU/GLES/FragmentShaderGenerator.cpp | 2 +- GPU/GLES/VertexShaderGenerator.cpp | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/GPU/GLES/FragmentShaderGenerator.cpp b/GPU/GLES/FragmentShaderGenerator.cpp index 8b86c23c47..1c8ee7768b 100644 --- a/GPU/GLES/FragmentShaderGenerator.cpp +++ b/GPU/GLES/FragmentShaderGenerator.cpp @@ -53,7 +53,7 @@ void ComputeFragmentShaderID(FragmentShaderID *id) id->d[0] |= (gstate.textureMapEnable & 1) << 7; id->d[0] |= (gstate.alphaTestEnable & 1) << 8; id->d[0] |= (gstate.alphatest & 0x7) << 9; // alpha test func - id->d[0] |= (gstate.fogEnable & 1) << 9; + id->d[0] |= (gstate.fogEnable & 1) << 12; } } diff --git a/GPU/GLES/VertexShaderGenerator.cpp b/GPU/GLES/VertexShaderGenerator.cpp index f2b29240ec..61e8aa811b 100644 --- a/GPU/GLES/VertexShaderGenerator.cpp +++ b/GPU/GLES/VertexShaderGenerator.cpp @@ -51,9 +51,7 @@ void ComputeVertexShaderID(VertexShaderID *id, int prim) bool hasColor = (gstate.vertType & GE_VTYPE_COL_MASK) != 0; bool hasNormal = (gstate.vertType & GE_VTYPE_NRM_MASK) != 0; bool hasBones = (gstate.vertType & GE_VTYPE_WEIGHT_MASK) != 0; - - int shadeLight0 = gstate.getUVGenMode() == 2 ? gstate.getUVLS0() : -1; - int shadeLight1 = gstate.getUVGenMode() == 2 ? gstate.getUVLS1() : -1; + bool enableFog = gstate.isFogEnabled() && !gstate.isModeThrough() && !gstate.isModeClear(); memset(id->d, 0, sizeof(id->d)); id->d[0] = gstate.lmode & 1; @@ -61,6 +59,7 @@ void ComputeVertexShaderID(VertexShaderID *id, int prim) id->d[0] |= ((int)gstate.isFogEnabled()) << 2; id->d[0] |= doTexture << 3; id->d[0] |= (hasColor & 1) << 4; + id->d[0] |= ((int)enableFog) << 5; if (CanUseHardwareTransform(prim)) { id->d[0] |= 1 << 8; id->d[0] |= (hasNormal & 1) << 9;