Przeglądaj źródła

Fix logic surrounding PushDescriptors in Vulkan (#257)

Jonas Henriksson 1 rok temu
rodzic
commit
8a2b56cae6
1 zmienionych plików z 10 dodań i 0 usunięć
  1. 10 0
      src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs

+ 10 - 0
src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs

@@ -182,6 +182,16 @@ namespace Ryujinx.Graphics.Vulkan
                     return false;
                 }
             }
+            
+            //Prevent the sum of descriptors from exceeding MaxPushDescriptors
+            int totalDescriptors = 0;
+            foreach (ResourceDescriptor desc in layout.Sets.First().Descriptors)
+            {
+                if (!reserved.Contains(desc.Binding))
+                    totalDescriptors += desc.Count;
+            }
+            if (totalDescriptors > gd.Capabilities.MaxPushDescriptors)
+                return false;
 
             return true;
         }