From 5fb0b5e7ec0beed24aa3253bb9fdaad89502e2f4 Mon Sep 17 00:00:00 2001 From: GreemDev Date: Wed, 1 Oct 2025 13:03:22 -0500 Subject: [PATCH] vulkan: Intel Arc on Linux also has the push descriptors bug. --- src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs | 2 +- src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs b/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs index c7bb1ba59..779e8f49e 100644 --- a/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs +++ b/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs @@ -160,7 +160,7 @@ namespace Ryujinx.Graphics.Vulkan 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); + return gd.IsNvidiaPreTuring || (gd.IsIntelArc && (gd.IsIntelWindows && gd.IsIntelLinux)); } private static bool CanUsePushDescriptors(VulkanRenderer gd, ResourceLayout layout, bool isCompute) diff --git a/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs b/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs index 32c22dd2a..5f1c50b00 100644 --- a/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs +++ b/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs @@ -91,6 +91,7 @@ namespace Ryujinx.Graphics.Vulkan internal Vendor Vendor { get; private set; } internal bool IsAmdWindows { get; private set; } internal bool IsIntelWindows { get; private set; } + internal bool IsIntelLinux { get; private set; } internal bool IsAmdGcn { get; private set; } internal bool IsAmdRdna3 { get; private set; } internal bool IsNvidiaPreTuring { get; private set; } @@ -359,6 +360,7 @@ namespace Ryujinx.Graphics.Vulkan IsAmdWindows = Vendor == Vendor.Amd && OperatingSystem.IsWindows(); IsIntelWindows = Vendor == Vendor.Intel && OperatingSystem.IsWindows(); + IsIntelLinux = Vendor == Vendor.Intel && OperatingSystem.IsLinux(); IsTBDR = Vendor is Vendor.Apple or Vendor.Qualcomm or @@ -398,7 +400,7 @@ namespace Ryujinx.Graphics.Vulkan } else if (Vendor == Vendor.Intel) { - IsIntelArc = GpuRenderer.StartsWith("Intel(R) Arc(TM)"); + IsIntelArc = GpuRenderer.StartsWithIgnoreCase("Intel(R) Arc(TM)"); } IsQualcommProprietary = hasDriverProperties && driverProperties.DriverID == DriverId.QualcommProprietary;