vulkan: Pass Vk instance to VulkanRenderer (#4859)

This will allow possible multiple driver selection without any need of
LD preload. (useful when testing custom version of mesa for example)
This commit is contained in:
Mary 2023-05-08 13:05:37 +02:00 committed by GitHub
parent 162798b026
commit a8950d6ac4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 20 deletions

View file

@ -487,11 +487,12 @@ namespace Ryujinx.Headless.SDL2
if (options.GraphicsBackend == GraphicsBackend.Vulkan && window is VulkanWindow vulkanWindow)
{
string preferredGpuId = string.Empty;
Vk api = Vk.GetApi();
if (!string.IsNullOrEmpty(options.PreferredGpuVendor))
{
string preferredGpuVendor = options.PreferredGpuVendor.ToLowerInvariant();
var devices = VulkanRenderer.GetPhysicalDevices();
var devices = VulkanRenderer.GetPhysicalDevices(api);
foreach (var device in devices)
{
@ -504,6 +505,7 @@ namespace Ryujinx.Headless.SDL2
}
return new VulkanRenderer(
api,
(instance, vk) => new SurfaceKHR((ulong)(vulkanWindow.CreateWindowSurface(instance.Handle))),
vulkanWindow.GetRequiredInstanceExtensions,
preferredGpuId);