8fa248ceb4
* Add MVK basics. * Use appropriate output attribute types * 4kb vertex alignment, bunch of fixes * Add reduced shader precision mode for mvk. * Disable ASTC on MVK for now * Only request robustnes2 when it is available. * It's just the one feature actually * Add triangle fan conversion * Allow NullDescriptor on MVK for some reason. * Force safe blit on MoltenVK * Use ASTC only when formats are all available. * Disable multilevel 3d texture views * Filter duplicate render targets (on backend) * Add Automatic MoltenVK Configuration * Do not create color attachment views with formats that are not RT compatible * Make sure that the host format matches the vertex shader input types for invalid/unknown guest formats * FIx rebase for Vertex Attrib State * Fix 4b alignment for vertex * Use asynchronous queue submits for MVK * Ensure color clear shader has correct output type * Update MoltenVK config * Always use MoltenVK workarounds on MacOS * Make MVK supersede all vendors * Fix rebase * Various fixes on rebase * Get portability flags from extension * Fix some minor rebasing issues * Style change * Use LibraryImport for MVKConfiguration * Rename MoltenVK vendor to Apple Intel and AMD GPUs on moltenvk report with the those vendors - only apple silicon reports with vendor 0x106B. * Fix features2 rebase conflict * Rename fragment output type * Add missing check for fragment output types Might have caused the crash in MK8 * Only do fragment output specialization on MoltenVK * Avoid copy when passing capabilities * Self feedback * Address feedback Co-authored-by: gdk <gab.dark.100@gmail.com> Co-authored-by: nastys <nastys@users.noreply.github.com>
60 lines
1.5 KiB
C#
60 lines
1.5 KiB
C#
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}"
|
|
};
|
|
}
|
|
}
|
|
}
|