Vulkan: Add workarounds for MoltenVK (#4202)
* 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>
This commit is contained in:
parent
30862b5ffd
commit
8fa248ceb4
36 changed files with 739 additions and 61 deletions
|
@ -5,9 +5,12 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
enum Vendor
|
||||
{
|
||||
Amd,
|
||||
ImgTec,
|
||||
Intel,
|
||||
Nvidia,
|
||||
ARM,
|
||||
Qualcomm,
|
||||
Apple,
|
||||
Unknown
|
||||
}
|
||||
|
||||
|
@ -21,7 +24,10 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
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
|
||||
|
@ -34,6 +40,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
{
|
||||
0x1002 => "AMD",
|
||||
0x1010 => "ImgTec",
|
||||
0x106B => "Apple",
|
||||
0x10DE => "NVIDIA",
|
||||
0x13B5 => "ARM",
|
||||
0x1AE0 => "Google",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue