diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2024-03-26 22:27:48 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-26 22:27:48 -0300 |
| commit | 72bdc24db8047b015490182b6156c67b31f88669 (patch) | |
| tree | bde9fc2deb6c4638ccee4164c1407cfdc48538eb /src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs | |
| parent | 43514771bf22b3d2f666e83f0b7c7ab515821d7f (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.cs | 8 |
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. |
