EXPERIMENTAL: Metal backend (#441)

This is not a continuation of the Metal backend; this is simply bringing
the branch up to date and merging it as-is behind an experiment.

---------

Co-authored-by: Isaac Marovitz <isaacryu@icloud.com>
Co-authored-by: Samuliak <samuliak77@gmail.com>
Co-authored-by: SamoZ256 <96914946+SamoZ256@users.noreply.github.com>
Co-authored-by: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>
Co-authored-by: riperiperi <rhy3756547@hotmail.com>
Co-authored-by: Gabriel A <gab.dark.100@gmail.com>
This commit is contained in:
Evan Husted
2024-12-24 00:55:16 -06:00
committed by GitHub
parent 3094df54dd
commit 852823104f
131 changed files with 14992 additions and 140 deletions

View File

@@ -305,14 +305,15 @@ namespace Ryujinx.UI.Common.Configuration
private static GraphicsBackend DefaultGraphicsBackend()
{
// Any system running macOS or returning any amount of valid Vulkan devices should default to Vulkan.
// Checks for if the Vulkan version and featureset is compatible should be performed within VulkanRenderer.
if (OperatingSystem.IsMacOS() || VulkanRenderer.GetPhysicalDevices().Length > 0)
{
return GraphicsBackend.Vulkan;
}
// Any system running macOS should default to auto, so it uses Vulkan everywhere and Metal in games where it works well.
if (OperatingSystem.IsMacOS())
return GraphicsBackend.Auto;
return GraphicsBackend.OpenGl;
}
}
// Any system returning any amount of valid Vulkan devices should default to Vulkan.
// Checks for if the Vulkan version and featureset is compatible should be performed within VulkanRenderer.
return VulkanRenderer.GetPhysicalDevices().Length > 0
? GraphicsBackend.Vulkan
: GraphicsBackend.OpenGl;
}
}
}