aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/Ui/Backend/Vulkan/VulkanPlatformInterface.cs
diff options
context:
space:
mode:
authorEmmanuel Hansen <emmausssss@gmail.com>2022-08-16 16:32:37 +0000
committerGitHub <noreply@github.com>2022-08-16 16:32:37 +0000
commitc8f9292babd5aa6021ce1bd6a977130baebb7de3 (patch)
treee6e62d79d08726129485476078732f9b89f6ab5c /Ryujinx.Ava/Ui/Backend/Vulkan/VulkanPlatformInterface.cs
parent0ec933a6152ebb7724da1e3a05a5ae1c2ea07b2f (diff)
Avalonia - Couple fixes and improvements to vulkan (#3483)1.1.219
* drop split devices, rebase * add fallback to opengl if vulkan is not available * addressed review * ensure present image references are incremented and decremented when necessary * allow changing vsync for vulkan * fix screenshot on avalonia vulkan * save favorite when toggled * improve sync between popups * use separate devices for each new window * fix crash when closing window * addressed review * don't create the main window with immediate mode * change skia vk delegate to method * update vulkan throwonerror * addressed review
Diffstat (limited to 'Ryujinx.Ava/Ui/Backend/Vulkan/VulkanPlatformInterface.cs')
-rw-r--r--Ryujinx.Ava/Ui/Backend/Vulkan/VulkanPlatformInterface.cs12
1 files changed, 1 insertions, 11 deletions
diff --git a/Ryujinx.Ava/Ui/Backend/Vulkan/VulkanPlatformInterface.cs b/Ryujinx.Ava/Ui/Backend/Vulkan/VulkanPlatformInterface.cs
index 47a07949..ff8d9328 100644
--- a/Ryujinx.Ava/Ui/Backend/Vulkan/VulkanPlatformInterface.cs
+++ b/Ryujinx.Ava/Ui/Backend/Vulkan/VulkanPlatformInterface.cs
@@ -18,13 +18,11 @@ namespace Ryujinx.Ava.Ui.Vulkan
public VulkanPhysicalDevice PhysicalDevice { get; private set; }
public VulkanInstance Instance { get; }
- public VulkanDevice Device { get; set; }
public Vk Api { get; private set; }
public VulkanSurfaceRenderTarget MainSurface { get; set; }
public void Dispose()
{
- Device?.Dispose();
Instance?.Dispose();
Api?.Dispose();
}
@@ -54,16 +52,9 @@ namespace Ryujinx.Ava.Ui.Vulkan
{
var surface = VulkanSurface.CreateSurface(Instance, platformSurface);
- if (Device == null)
+ if (PhysicalDevice == null)
{
PhysicalDevice = VulkanPhysicalDevice.FindSuitablePhysicalDevice(Instance, surface, _options.PreferDiscreteGpu, _options.PreferredDevice);
- var device = VulkanInitialization.CreateDevice(Instance.Api,
- PhysicalDevice.InternalHandle,
- PhysicalDevice.QueueFamilyIndex,
- VulkanInitialization.GetSupportedExtensions(Instance.Api, PhysicalDevice.InternalHandle),
- PhysicalDevice.QueueCount);
-
- Device = new VulkanDevice(device, PhysicalDevice, Instance.Api);
}
var renderTarget = new VulkanSurfaceRenderTarget(this, surface);
@@ -71,7 +62,6 @@ namespace Ryujinx.Ava.Ui.Vulkan
if (MainSurface == null && surface != null)
{
MainSurface = renderTarget;
- MainSurface.Display.ChangeVSyncMode(false);
}
return renderTarget;