gdkchan 7 лет назад
Родитель
Сommit
9176180abb

+ 2 - 1
Ryujinx.Graphics/Gal/Shader/GlslDecl.cs

@@ -159,7 +159,8 @@ namespace Ryujinx.Graphics.Gal.Shader
                 case ShaderIrOperAbuf Abuf:
                 {
                     //This is a built-in input variable.
-                    if (Abuf.Offs == VertexIdAttr)
+                    if (Abuf.Offs == VertexIdAttr ||
+                        Abuf.Offs == InstanceIdAttr)
                     {
                         break;
                     }

+ 2 - 1
Ryujinx.Graphics/Gal/Shader/GlslDecompiler.cs

@@ -975,7 +975,8 @@ namespace Ryujinx.Graphics.Gal.Shader
             switch (Node)
             {
                 case ShaderIrOperAbuf Abuf:
-                    return Abuf.Offs == GlslDecl.VertexIdAttr
+                    return Abuf.Offs == GlslDecl.VertexIdAttr ||
+                           Abuf.Offs == GlslDecl.InstanceIdAttr
                         ? OperType.I32
                         : OperType.F32;
 

+ 1 - 1
Ryujinx.Graphics/Gal/Shader/ShaderDecodeHelper.cs

@@ -14,7 +14,7 @@ namespace Ryujinx.Graphics.Gal.Shader
 
             for (int Index = 0; Index <= Size; Index++)
             {
-                Opers[Index] = new ShaderIrOperAbuf(Abuf, Reg);
+                Opers[Index] = new ShaderIrOperAbuf(Abuf + Index * 4, Reg);
             }
 
             return Opers;