mirror of
				https://github.com/ryujinx-mirror/ryujinx.git
				synced 2025-11-04 08:18:58 -06:00 
			
		
		
		
	UI: Friendly driver name reporting. (#6530)
* 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>
This commit is contained in:
		@@ -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(),
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user