@@ -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;
}
@@ -975,7 +975,8 @@ namespace Ryujinx.Graphics.Gal.Shader
switch (Node)
- return Abuf.Offs == GlslDecl.VertexIdAttr
+ return Abuf.Offs == GlslDecl.VertexIdAttr ||
+ Abuf.Offs == GlslDecl.InstanceIdAttr
? OperType.I32
: OperType.F32;
@@ -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;