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

Fix gl_Layer to geometry shader change not writing gl_Layer (#5682)

* Fix gl_Layer to geometry shader change not writing gl_Layer

* Shader cache version bump
gdkchan 2 лет назад
Родитель
Сommit
a745913329

+ 1 - 1
src/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 FileFormatVersionMajor = 1;
         private const ushort FileFormatVersionMinor = 2;
         private const ushort FileFormatVersionMinor = 2;
         private const uint FileFormatVersionPacked = ((uint)FileFormatVersionMajor << 16) | FileFormatVersionMinor;
         private const uint FileFormatVersionPacked = ((uint)FileFormatVersionMajor << 16) | FileFormatVersionMinor;
-        private const uint CodeGenVersion = 5668;
+        private const uint CodeGenVersion = 5682;
 
 
         private const string SharedTocFileName = "shared.toc";
         private const string SharedTocFileName = "shared.toc";
         private const string SharedDataFileName = "shared.data";
         private const string SharedDataFileName = "shared.data";

+ 5 - 0
src/Ryujinx.Graphics.Shader/Translation/TranslatorContext.cs

@@ -576,6 +576,11 @@ namespace Ryujinx.Graphics.Shader.Translation
             int outputAttributesMask = AttributeUsage.UsedOutputAttributes;
             int outputAttributesMask = AttributeUsage.UsedOutputAttributes;
             int layerOutputAttr = LayerOutputAttribute;
             int layerOutputAttr = LayerOutputAttribute;
 
 
+            if (LayerOutputWritten)
+            {
+                outputAttributesMask |= 1 << ((layerOutputAttr - AttributeConsts.UserAttributeBase) / 16);
+            }
+
             OutputTopology outputTopology;
             OutputTopology outputTopology;
             int maxOutputVertices;
             int maxOutputVertices;