| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System.Text.RegularExpressions;
- namespace Ryujinx.Graphics.Vulkan
- {
- enum Vendor
- {
- Amd,
- ImgTec,
- Intel,
- Nvidia,
- ARM,
- Qualcomm,
- Apple,
- Unknown
- }
- static partial class VendorUtils
- {
- [GeneratedRegex("Radeon (((HD|R(5|7|9|X)) )?((M?[2-6]\\d{2}(\\D|$))|([7-8]\\d{3}(\\D|$))|Fury|Nano))|(Pro Duo)")]
- public static partial Regex AmdGcnRegex();
- public static Vendor FromId(uint id)
- {
- return id switch
- {
- 0x1002 => Vendor.Amd,
- 0x1010 => Vendor.ImgTec,
- 0x106B => Vendor.Apple,
- 0x10DE => Vendor.Nvidia,
- 0x13B5 => Vendor.ARM,
- 0x8086 => Vendor.Intel,
- 0x5143 => Vendor.Qualcomm,
- _ => Vendor.Unknown
- };
- }
- public static string GetNameFromId(uint id)
- {
- return id switch
- {
- 0x1002 => "AMD",
- 0x1010 => "ImgTec",
- 0x106B => "Apple",
- 0x10DE => "NVIDIA",
- 0x13B5 => "ARM",
- 0x1AE0 => "Google",
- 0x5143 => "Qualcomm",
- 0x8086 => "Intel",
- 0x10001 => "Vivante",
- 0x10002 => "VeriSilicon",
- 0x10003 => "Kazan",
- 0x10004 => "Codeplay Software Ltd.",
- 0x10005 => "Mesa",
- 0x10006 => "PoCL",
- _ => $"0x{id:X}"
- };
- }
- }
- }
|