diff --git a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
index a44081920b..f9ad0ad28e 100644
--- a/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
+++ b/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
@@ -36,7 +36,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
         /// <summary>
         /// Version of the codegen (to be changed when codegen or guest format change).
         /// </summary>
-        private const ulong ShaderCodeGenVersion = 2362;
+        private const ulong ShaderCodeGenVersion = 2397;
 
         // Progress reporting helpers
         private volatile int _shaderCount;
diff --git a/Ryujinx.Graphics.Shader/Instructions/InstEmitTexture.cs b/Ryujinx.Graphics.Shader/Instructions/InstEmitTexture.cs
index 69d3ffb340..b59f0d31a5 100644
--- a/Ryujinx.Graphics.Shader/Instructions/InstEmitTexture.cs
+++ b/Ryujinx.Graphics.Shader/Instructions/InstEmitTexture.cs
@@ -889,7 +889,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
                             type,
                             flags,
                             handle,
-                            compIndex,
+                            compIndex ^ 1, // The instruction component order is the inverse of GLSL's.
                             tempDest,
                             sources);
 
@@ -897,9 +897,9 @@ namespace Ryujinx.Graphics.Shader.Instructions
 
                         tempDest = context.FPMultiply(tempDest, ConstF(256.0f));
 
-                        Operand finalValue = context.FPConvertToS32(tempDest);
+                        Operand fixedPointValue = context.FPConvertToS32(tempDest);
 
-                        context.Copy(dest, finalValue);
+                        context.Copy(dest, fixedPointValue);
                     }
                 }
             }
diff --git a/Ryujinx.Graphics.Shader/Translation/Rewriter.cs b/Ryujinx.Graphics.Shader/Translation/Rewriter.cs
index 912d61f1a3..84aa7c10a3 100644
--- a/Ryujinx.Graphics.Shader/Translation/Rewriter.cs
+++ b/Ryujinx.Graphics.Shader/Translation/Rewriter.cs
@@ -155,7 +155,7 @@ namespace Ryujinx.Graphics.Shader.Translation
             {
                 return node;
             }
-            
+
             bool isGather       = (texOp.Flags & TextureFlags.Gather)      != 0;
             bool hasDerivatives = (texOp.Flags & TextureFlags.Derivatives) != 0;
             bool intCoords      = (texOp.Flags & TextureFlags.IntCoords)   != 0;
@@ -360,7 +360,7 @@ namespace Ryujinx.Graphics.Shader.Translation
                         texOp.Format,
                         texOp.Flags,
                         texOp.Handle,
-                        1,
+                        0,
                         lod,
                         lodSources));