aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2024-03-26 22:27:48 -0300
committerGitHub <noreply@github.com>2024-03-26 22:27:48 -0300
commit72bdc24db8047b015490182b6156c67b31f88669 (patch)
treebde9fc2deb6c4638ccee4164c1407cfdc48538eb /src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
parent43514771bf22b3d2f666e83f0b7c7ab515821d7f (diff)
Disable push descriptors for Intel ARC GPUs on Windows (#6551)
* Move some init logic out of PrintGpuInformation, then delete it * Disable push descriptors for Intel ARC on Windows * Re-add PrintGpuInformation just to show it in the log
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs b/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
index 7f687fb4..e4ea0e4e 100644
--- a/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
+++ b/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
@@ -111,8 +111,8 @@ namespace Ryujinx.Graphics.Vulkan
bool usePushDescriptors = !isMinimal &&
VulkanConfiguration.UsePushDescriptors &&
_gd.Capabilities.SupportsPushDescriptors &&
- !_gd.IsNvidiaPreTuring &&
!IsCompute &&
+ !HasPushDescriptorsBug(gd) &&
CanUsePushDescriptors(gd, resourceLayout, IsCompute);
ReadOnlyCollection<ResourceDescriptorCollection> sets = usePushDescriptors ?
@@ -147,6 +147,12 @@ namespace Ryujinx.Graphics.Vulkan
_firstBackgroundUse = !fromCache;
}
+ private static bool HasPushDescriptorsBug(VulkanRenderer gd)
+ {
+ // Those GPUs/drivers do not work properly with push descriptors, so we must force disable them.
+ return gd.IsNvidiaPreTuring || (gd.IsIntelArc && gd.IsIntelWindows);
+ }
+
private static bool CanUsePushDescriptors(VulkanRenderer gd, ResourceLayout layout, bool isCompute)
{
// If binding 3 is immediately used, use an alternate set of reserved bindings.