diff --git a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
index 8f38b769d..747e12b8c 100644
--- a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
+++ b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
@@ -528,6 +528,9 @@
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 					"$(PROJECT_DIR)/MeloNX",
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 				);
 				MARKETING_VERSION = 1.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
@@ -591,6 +594,9 @@
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 					"$(PROJECT_DIR)/MeloNX",
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 				);
 				MARKETING_VERSION = 1.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
diff --git a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate
index 90b22f5bf..38981031d 100644
Binary files a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate and b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/src/MeloNX/MeloNX.xcodeproj/xcshareddata/xcschemes/MeloNX.xcscheme b/src/MeloNX/MeloNX.xcodeproj/xcshareddata/xcschemes/MeloNX.xcscheme
index c0d279fbb..3ba310666 100644
--- a/src/MeloNX/MeloNX.xcodeproj/xcshareddata/xcschemes/MeloNX.xcscheme
+++ b/src/MeloNX/MeloNX.xcodeproj/xcshareddata/xcschemes/MeloNX.xcscheme
@@ -58,7 +58,6 @@
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      enableAddressSanitizer = "YES"
       launchStyle = "0"
       useCustomWorkingDirectory = "NO"
       ignoresPersistentStateOnLaunch = "NO"
diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/libMoltenVK.dylib b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/libMoltenVK.dylib
index 845e2ef50..4787d35a7 100755
Binary files a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/libMoltenVK.dylib and b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/libMoltenVK.dylib differ
diff --git a/src/MeloNX/MeloNX/Views/ContentView.swift b/src/MeloNX/MeloNX/Views/ContentView.swift
index 135aa01f9..2b9b16daa 100644
--- a/src/MeloNX/MeloNX/Views/ContentView.swift
+++ b/src/MeloNX/MeloNX/Views/ContentView.swift
@@ -47,10 +47,15 @@ struct ContentView: View {
         
         
         if let game {
-            Text("Loading...")
-                .onAppear {
+            ZStack {
+                SDLViewRepresentable { displayid in
                     start(displayid: 0)
                 }
+                Text("Loading...")
+                    .onAppear {
+                       // start(displayid: 0)
+                    }
+            }
         } else {
             HStack {
                 GameListView(startemu: $game)
@@ -92,10 +97,10 @@ struct ContentView: View {
             additionalArgs: [
                 // "--display-id", String(displayid)
             ],
-            debuglogs: true,
-            tracelogs: true,
+            debuglogs: false,
+            tracelogs: false,
             listinputids: false,
-            inputids: ["1-1fd70005-057e-0000-0920-0000ff870000"], // "2-1fd70005-057e-0000-0920-0000ff870000"],
+            inputids: [], //"1-1fd70005-057e-0000-0920-0000ff870000"], // "2-1fd70005-057e-0000-0920-0000ff870000"],
             ryufullscreen: true
             
         )
@@ -129,7 +134,8 @@ struct ContentView: View {
             "MVK_DEBUG": "1",
             "MVK_CONFIG_DEBUG": "1",
             "MVK_CONFIG_PREALLOCATE_DESCRIPTORS": "1",
-            // "MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE": "1",
+            "MVK_CONFIG_TEXTURE_1D_AS_2D": "0",
+            "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS": "0",
             "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS": "3",
             "MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE": "512",
             "MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS": "1",
@@ -140,7 +146,7 @@ struct ContentView: View {
         ]
         
         settings.forEach { strins in
-            setenv(strins.key, strins.value, 1)
+           setenv(strins.key, strins.value, 1)
         }
         
     }
diff --git a/src/Ryujinx.Graphics.Vulkan/DescriptorSetCollection.cs b/src/Ryujinx.Graphics.Vulkan/DescriptorSetCollection.cs
index 846dd5c7d..9a792a544 100644
--- a/src/Ryujinx.Graphics.Vulkan/DescriptorSetCollection.cs
+++ b/src/Ryujinx.Graphics.Vulkan/DescriptorSetCollection.cs
@@ -48,32 +48,58 @@ namespace Ryujinx.Graphics.Vulkan
         }
 
         public unsafe void UpdateBuffers(int setIndex, int baseBinding, ReadOnlySpan<DescriptorBufferInfo> bufferInfo, DescriptorType type)
+{
+
+    // DEBUG: Validate inputs
+    if (bufferInfo.Length == 0)
+    {
+        Console.WriteLine("bufferInfo is empty.");
+        return;
+    }
+
+    // DEBUG: Check if _descriptorSets and _holder.Device are properly initialized
+    if (_descriptorSets == null || _descriptorSets.Length <= setIndex)
+    {
+        throw new Exception("Descriptor set at the specified index is null or out of range.");
+    }
+
+    if (_holder?.Device == null)
+    {
+        throw new Exception("_holder.Device is null or uninitialized.");
+    }
+
+    // DEBUG: Check each DescriptorBufferInfo in the span
+    foreach (var info in bufferInfo)
+    {
+        if (info.Buffer.Handle == 0)
         {
-            if (bufferInfo.Length == 0)
-            {
-                return;
-            }
-
-            fixed (DescriptorBufferInfo* pBufferInfo = bufferInfo)
-            {
-                var writeDescriptorSet = new WriteDescriptorSet
-                {
-                    SType = StructureType.WriteDescriptorSet,
-                    DstSet = _descriptorSets[setIndex],
-                    DstBinding = (uint)baseBinding,
-                    DescriptorType = type,
-                    DescriptorCount = (uint)bufferInfo.Length,
-                    PBufferInfo = pBufferInfo,
-                };
-
-                _holder.Api.UpdateDescriptorSets(_holder.Device, 1, writeDescriptorSet, 0, null);
-            }
+            throw new Exception("One of the buffers in bufferInfo is null or uninitialized.");
         }
+    }
+
+    // Proceed if all checks pass
+    fixed (DescriptorBufferInfo* pBufferInfo = bufferInfo)
+    {
+        var writeDescriptorSet = new WriteDescriptorSet
+        {
+            SType = StructureType.WriteDescriptorSet,
+            DstSet = _descriptorSets[setIndex],
+            DstBinding = (uint)baseBinding,
+            DescriptorType = type,
+            DescriptorCount = (uint)bufferInfo.Length,
+            PBufferInfo = pBufferInfo
+        };
+
+        // Update descriptor sets
+        _holder.Api.UpdateDescriptorSets(_holder.Device, 1, writeDescriptorSet, 0, null);
+    }
+}
 
         public unsafe void UpdateImage(int setIndex, int bindingIndex, DescriptorImageInfo imageInfo, DescriptorType type)
         {
             if (imageInfo.ImageView.Handle != 0UL)
             {
+            
                 var writeDescriptorSet = new WriteDescriptorSet
                 {
                     SType = StructureType.WriteDescriptorSet,
@@ -90,11 +116,22 @@ namespace Ryujinx.Graphics.Vulkan
 
         public unsafe void UpdateImages(int setIndex, int baseBinding, ReadOnlySpan<DescriptorImageInfo> imageInfo, DescriptorType type)
         {
+
+            // DEBUG: Check if imageInfo is Empty
             if (imageInfo.Length == 0)
             {
+                
+                Console.WriteLine("Error: imageInfo is empty.");
                 return;
             }
 
+            // DEBUG: Check the values inside imageInfo
+            foreach (var info in imageInfo)
+            {
+                Console.WriteLine($"Buffer Handle: {info.ImageView.Handle}");
+            }
+
+
             fixed (DescriptorImageInfo* pImageInfo = imageInfo)
             {
                 var writeDescriptorSet = new WriteDescriptorSet
@@ -103,10 +140,12 @@ namespace Ryujinx.Graphics.Vulkan
                     DstSet = _descriptorSets[setIndex],
                     DstBinding = (uint)baseBinding,
                     DescriptorType = type,
-                    DescriptorCount = (uint)imageInfo.Length,
+                    DescriptorCount = (uint)1,
                     PImageInfo = pImageInfo,
                 };
 
+                
+
                 _holder.Api.UpdateDescriptorSets(_holder.Device, 1, writeDescriptorSet, 0, null);
             }
         }
diff --git a/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs b/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs
index 273f91fa8..f89ca788f 100644
--- a/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs
+++ b/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs
@@ -103,18 +103,18 @@ namespace Ryujinx.Graphics.Vulkan
             SupportsShaderStencilExport = supportsShaderStencilExport;
             SupportsShaderStorageImageMultisample = supportsShaderStorageImageMultisample;
             SupportsConditionalRendering = supportsConditionalRendering;
-            SupportsExtendedDynamicState = false;
+            SupportsExtendedDynamicState = supportsExtendedDynamicState;
             SupportsMultiView = supportsMultiView;
             SupportsNullDescriptors = (OperatingSystem.IsIOS() ? false : supportsNullDescriptors);
-            SupportsPushDescriptors = (OperatingSystem.IsIOS() ? false : SupportsPushDescriptors);
+            SupportsPushDescriptors = (OperatingSystem.IsIOS() ? false : supportsPushDescriptors);
             SupportsPrimitiveTopologyListRestart = supportsPrimitiveTopologyListRestart;
             SupportsPrimitiveTopologyPatchListRestart = supportsPrimitiveTopologyPatchListRestart;
-            SupportsTransformFeedback = false;
+            SupportsTransformFeedback = supportsTransformFeedback;
             SupportsTransformFeedbackQueries = supportsTransformFeedbackQueries;
             SupportsPreciseOcclusionQueries = supportsPreciseOcclusionQueries;
             SupportsPipelineStatisticsQuery = supportsPipelineStatisticsQuery;
-            SupportsGeometryShader = false;
-            SupportsTessellationShader = false;
+            SupportsGeometryShader = supportsGeometryShader;
+            SupportsTessellationShader = supportsTessellationShader;
             SupportsViewportArray2 = supportsViewportArray2;
             SupportsHostImportedMemory = supportsHostImportedMemory;
             SupportsDepthClipControl = supportsDepthClipControl;
diff --git a/src/Ryujinx.Headless.SDL2/WindowBase.cs b/src/Ryujinx.Headless.SDL2/WindowBase.cs
index 9603a86be..8b24f1b9d 100644
--- a/src/Ryujinx.Headless.SDL2/WindowBase.cs
+++ b/src/Ryujinx.Headless.SDL2/WindowBase.cs
@@ -185,7 +185,8 @@ namespace Ryujinx.Headless.SDL2
                 FullscreenFlag = SDL_WindowFlags.SDL_WINDOW_FULLSCREEN_DESKTOP;
             }
 
-            WindowHandle = SDL_CreateWindow($"Ryujinx {Program.Version}{titleNameSection}{titleVersionSection}{titleIdSection}{titleArchSection}", SDL_WINDOWPOS_CENTERED_DISPLAY(DisplayId), SDL_WINDOWPOS_CENTERED_DISPLAY(DisplayId), Width, Height, DefaultFlags | FullscreenFlag | GetWindowFlags());
+            WindowHandle = SDL_GetWindowFromID(1);
+            // WindowHandle = SDL_CreateWindow($"Ryujinx {Program.Version}{titleNameSection}{titleVersionSection}{titleIdSection}{titleArchSection}", SDL_WINDOWPOS_CENTERED_DISPLAY(DisplayId), SDL_WINDOWPOS_CENTERED_DISPLAY(DisplayId), Width, Height, DefaultFlags | FullscreenFlag | GetWindowFlags());
 
             if (WindowHandle == IntPtr.Zero)
             {