Explorar o código

Fix logic surrounding PushDescriptors in Vulkan (#257)

Jonas Henriksson hai 1 ano
pai
achega
8a2b56cae6
Modificáronse 1 ficheiros con 10 adicións e 0 borrados
  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;
         }