Просмотр исходного кода

Do not attempt to read unused attribute, fix attributes count (#520)

gdkchan 7 лет назад
Родитель
Сommit
1fd1ec5664

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

@@ -878,7 +878,7 @@ namespace Ryujinx.Graphics.Gal.Shader
                 }
                 }
             }
             }
 
 
-            if (DeclInfo.Index >= 16)
+            if (DeclInfo.Index >= 32)
             {
             {
                 throw new InvalidOperationException($"Shader attribute offset {Abuf.Offs} is invalid.");
                 throw new InvalidOperationException($"Shader attribute offset {Abuf.Offs} is invalid.");
             }
             }

+ 5 - 0
Ryujinx.Graphics/Graphics3d/NvGpuEngine3d.cs

@@ -734,6 +734,11 @@ namespace Ryujinx.Graphics.Graphics3d
 
 
                 long VbPosition = MakeInt64From2xInt32(NvGpuEngine3dReg.VertexArrayNAddress + ArrayIndex * 4);
                 long VbPosition = MakeInt64From2xInt32(NvGpuEngine3dReg.VertexArrayNAddress + ArrayIndex * 4);
 
 
+                if (VbPosition == 0)
+                {
+                    continue;
+                }
+
                 bool IsConst = ((Packed >> 6) & 1) != 0;
                 bool IsConst = ((Packed >> 6) & 1) != 0;
 
 
                 int Offset = (Packed >> 7) & 0x3fff;
                 int Offset = (Packed >> 7) & 0x3fff;