aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMutantAura <44103205+MutantAura@users.noreply.github.com>2024-03-27 17:55:34 +0000
committerGitHub <noreply@github.com>2024-03-27 14:55:34 -0300
commit7124d679fd4345f2ed517e77ab40d90e6bef9650 (patch)
tree9c7a60b2384c64937eae18fa0bf2d681219a8c7b
parentb323a017385ac6e08db4025fe4ef1bfbb41607ab (diff)
UI: Friendly driver name reporting. (#6530)1.1.1248
* Implement friendly VkDriverID names for UI. * Capitalise NVIDIA * Prefer vendor name on macOS * Typo fix Co-authored-by: gdkchan <gab.dark.100@gmail.com> --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
-rw-r--r--src/Ryujinx.Graphics.Vulkan/Vendor.cs32
-rw-r--r--src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs7
2 files changed, 35 insertions, 4 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/Vendor.cs b/src/Ryujinx.Graphics.Vulkan/Vendor.cs
index ff841dec..e0f56907 100644
--- a/src/Ryujinx.Graphics.Vulkan/Vendor.cs
+++ b/src/Ryujinx.Graphics.Vulkan/Vendor.cs
@@ -1,3 +1,4 @@
+using Silk.NET.Vulkan;
using System.Text.RegularExpressions;
namespace Ryujinx.Graphics.Vulkan
@@ -61,5 +62,36 @@ namespace Ryujinx.Graphics.Vulkan
_ => $"0x{id:X}",
};
}
+
+ public static string GetFriendlyDriverName(DriverId id)
+ {
+ return id switch
+ {
+ DriverId.AmdProprietary => "AMD",
+ DriverId.AmdOpenSource => "AMD (Open)",
+ DriverId.ArmProprietary => "ARM",
+ DriverId.BroadcomProprietary => "Broadcom",
+ DriverId.CoreaviProprietary => "CoreAVI",
+ DriverId.GgpProprietary => "GGP",
+ DriverId.GoogleSwiftshader => "SwiftShader",
+ DriverId.ImaginationProprietary => "Imagination",
+ DriverId.IntelOpenSourceMesa => "Intel (Open)",
+ DriverId.IntelProprietaryWindows => "Intel",
+ DriverId.JuiceProprietary => "Juice",
+ DriverId.MesaDozen => "Dozen",
+ DriverId.MesaLlvmpipe => "LLVMpipe",
+ DriverId.MesaPanvk => "PanVK",
+ DriverId.MesaRadv => "RADV",
+ DriverId.MesaTurnip => "Turnip",
+ DriverId.MesaV3DV => "V3DV",
+ DriverId.MesaVenus => "Venus",
+ DriverId.Moltenvk => "MoltenVK",
+ DriverId.NvidiaProprietary => "NVIDIA",
+ DriverId.QualcommProprietary => "Qualcomm",
+ DriverId.SamsungProprietary => "Samsung",
+ DriverId.VerisiliconProprietary => "Verisilicon",
+ _ => id.ToString(),
+ };
+ }
}
}
diff --git a/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs b/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
index ede54a6f..d1afeaea 100644
--- a/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
+++ b/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
@@ -313,8 +313,6 @@ namespace Ryujinx.Graphics.Vulkan
var hasDriverProperties = _physicalDevice.TryGetPhysicalDeviceDriverPropertiesKHR(Api, out var driverProperties);
- string vendorName = VendorUtils.GetNameFromId(properties.VendorID);
-
Vendor = VendorUtils.FromId(properties.VendorID);
IsAmdWindows = Vendor == Vendor.Amd && OperatingSystem.IsWindows();
@@ -326,8 +324,9 @@ namespace Ryujinx.Graphics.Vulkan
Vendor == Vendor.Broadcom ||
Vendor == Vendor.ImgTec;
- GpuVendor = vendorName;
- GpuDriver = hasDriverProperties ? Marshal.PtrToStringAnsi((IntPtr)driverProperties.DriverName) : vendorName; // Fall back to vendor name if driver name isn't available.
+ GpuVendor = VendorUtils.GetNameFromId(properties.VendorID);
+ GpuDriver = hasDriverProperties && !OperatingSystem.IsMacOS() ?
+ VendorUtils.GetFriendlyDriverName(driverProperties.DriverID) : GpuVendor; // Fallback to vendor name if driver is unavailable or on MacOS where vendor is preferred.
fixed (byte* deviceName = properties.DeviceName)
{