فهرست منبع

Minor shader fixes

gdkchan 7 سال پیش
والد
کامیت
9176180abb

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

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

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

@@ -975,7 +975,8 @@ namespace Ryujinx.Graphics.Gal.Shader
             switch (Node)
             switch (Node)
             {
             {
                 case ShaderIrOperAbuf Abuf:
                 case ShaderIrOperAbuf Abuf:
-                    return Abuf.Offs == GlslDecl.VertexIdAttr
+                    return Abuf.Offs == GlslDecl.VertexIdAttr ||
+                           Abuf.Offs == GlslDecl.InstanceIdAttr
                         ? OperType.I32
                         ? OperType.I32
                         : OperType.F32;
                         : 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++)
             for (int Index = 0; Index <= Size; Index++)
             {
             {
-                Opers[Index] = new ShaderIrOperAbuf(Abuf, Reg);
+                Opers[Index] = new ShaderIrOperAbuf(Abuf + Index * 4, Reg);
             }
             }
 
 
             return Opers;
             return Opers;