فهرست منبع

Fix geometry shader layer passthrough regression (#4735)

* Fix geometry shader layer passthrough regression

* Shader cache version bump
gdkchan 3 سال پیش
والد
کامیت
cd124bda58

+ 1 - 1
Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs

@@ -22,7 +22,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
         private const ushort FileFormatVersionMajor = 1;
         private const ushort FileFormatVersionMinor = 2;
         private const uint FileFormatVersionPacked = ((uint)FileFormatVersionMajor << 16) | FileFormatVersionMinor;
-        private const uint CodeGenVersion = 4565;
+        private const uint CodeGenVersion = 4735;
 
         private const string SharedTocFileName = "shared.toc";
         private const string SharedDataFileName = "shared.data";

+ 4 - 4
Ryujinx.Graphics.Shader/Translation/EmitterContext.cs

@@ -322,10 +322,10 @@ namespace Ryujinx.Graphics.Shader.Translation
 
                 void WriteUserDefinedOutput(int index, int primIndex)
                 {
-                    Operand x = this.Load(StorageKind.Input, IoVariable.UserDefined, Const(primIndex), Const(index), Const(0));
-                    Operand y = this.Load(StorageKind.Input, IoVariable.UserDefined, Const(primIndex), Const(index), Const(1));
-                    Operand z = this.Load(StorageKind.Input, IoVariable.UserDefined, Const(primIndex), Const(index), Const(2));
-                    Operand w = this.Load(StorageKind.Input, IoVariable.UserDefined, Const(primIndex), Const(index), Const(3));
+                    Operand x = this.Load(StorageKind.Input, IoVariable.UserDefined, Const(index), Const(primIndex), Const(0));
+                    Operand y = this.Load(StorageKind.Input, IoVariable.UserDefined, Const(index), Const(primIndex), Const(1));
+                    Operand z = this.Load(StorageKind.Input, IoVariable.UserDefined, Const(index), Const(primIndex), Const(2));
+                    Operand w = this.Load(StorageKind.Input, IoVariable.UserDefined, Const(index), Const(primIndex), Const(3));
 
                     this.Store(StorageKind.Output, IoVariable.UserDefined, null, Const(index), Const(0), x);
                     this.Store(StorageKind.Output, IoVariable.UserDefined, null, Const(index), Const(1), y);

+ 1 - 1
Ryujinx.Graphics.Shader/Translation/TranslatorContext.cs

@@ -208,7 +208,7 @@ namespace Ryujinx.Graphics.Shader.Translation
                     {
                         int attr = AttributeConsts.UserAttributeBase + attrIndex * 16 + c * 4;
 
-                        Operand value = context.Load(StorageKind.Input, IoVariable.UserDefined, Const(v), Const(attrIndex), Const(c));
+                        Operand value = context.Load(StorageKind.Input, IoVariable.UserDefined, Const(attrIndex), Const(v), Const(c));
 
                         if (attr == layerOutputAttr)
                         {