From 70f2da8fdf313c22ffcb72d492cc7c865d6cb77e Mon Sep 17 00:00:00 2001
From: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
Date: Fri, 25 Nov 2022 18:40:44 +0100
Subject: [PATCH] ava: Fix invisible vulkan window on Linux (#3901)

Co-authored-by: emmauss <emmausssss@gmail.com>

Co-authored-by: emmauss <emmausssss@gmail.com>
---
 Ryujinx.Ava/Ui/Controls/EmbeddedWindow.cs       | 6 ++++--
 Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/Ryujinx.Ava/Ui/Controls/EmbeddedWindow.cs b/Ryujinx.Ava/Ui/Controls/EmbeddedWindow.cs
index d9fae93a5b..f60ee7e001 100644
--- a/Ryujinx.Ava/Ui/Controls/EmbeddedWindow.cs
+++ b/Ryujinx.Ava/Ui/Controls/EmbeddedWindow.cs
@@ -6,8 +6,8 @@ using SPB.Graphics;
 using SPB.Platform;
 using SPB.Platform.GLX;
 using SPB.Platform.X11;
+using SPB.Windowing;
 using System;
-using System.Reflection;
 using System.Runtime.InteropServices;
 using System.Runtime.Versioning;
 using System.Threading.Tasks;
@@ -96,12 +96,14 @@ namespace Ryujinx.Ava.Ui.Controls
         [SupportedOSPlatform("linux")]
         IPlatformHandle CreateLinux(IPlatformHandle parent)
         {
-            X11Window = PlatformHelper.CreateOpenGLWindow(FramebufferFormat.Default, 0, 0, 100, 100) as GLXWindow;
+            X11Window = new GLXWindow(new NativeHandle(X11.DefaultDisplay), new NativeHandle(parent.Handle));
 
             WindowHandle = X11Window.WindowHandle.RawHandle;
 
             X11Display = X11Window.DisplayHandle.RawHandle;
 
+            X11Window.Hide();
+
             return new PlatformHandle(WindowHandle, "X11");
         }
 
diff --git a/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs b/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs
index d2c980ddf3..4954c882a4 100644
--- a/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs
+++ b/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs
@@ -20,7 +20,7 @@ namespace Ryujinx.Ava.Ui
             }
             else if (OperatingSystem.IsLinux())
             {
-                _window = X11Window;
+                _window = new SimpleX11Window(new NativeHandle(X11Display), new NativeHandle(WindowHandle));
             }
             else
             {