diff --git a/src/ARMeilleure/Native/JitSupportDarwin.cs b/src/ARMeilleure/Native/JitSupportDarwin.cs index 497362ef5..7ae7a8ddc 100644 --- a/src/ARMeilleure/Native/JitSupportDarwin.cs +++ b/src/ARMeilleure/Native/JitSupportDarwin.cs @@ -24,13 +24,13 @@ namespace ARMeilleure.Native public static unsafe void Copy(IntPtr dst, IntPtr src, ulong n) { // When NativeAOT is in use, we can toggle per-thread write protection without worrying about breaking .NET code. - //pthread_jit_write_protect_np(0); + // pthread_jit_write_protect_np(0); var srcSpan = new Span(src.ToPointer(), (int)n); var dstSpan = new Span(dst.ToPointer(), (int)n); srcSpan.CopyTo(dstSpan); - //pthread_jit_write_protect_np(1); + // pthread_jit_write_protect_np(1); // Ensure that the instruction cache for this range is invalidated. sys_icache_invalidate(dst, (IntPtr)n); diff --git a/src/ARMeilleure/Translation/Cache/JitCache.cs b/src/ARMeilleure/Translation/Cache/JitCache.cs index 0ff9645c9..1d27efb05 100644 --- a/src/ARMeilleure/Translation/Cache/JitCache.cs +++ b/src/ARMeilleure/Translation/Cache/JitCache.cs @@ -91,7 +91,15 @@ namespace ARMeilleure.Translation.Cache if (OperatingSystem.IsIOS()) { - Marshal.Copy(code, 0, funcPtr, code.Length); + // Marshal.Copy(code, 0, funcPtr, code.Length); + unsafe + { + fixed (byte* codePtr = code) + { + JitSupportDarwinAot.Copy(funcPtr, (IntPtr)codePtr, (ulong)code.Length); + } + } + if (deferProtect) { _deferredRxProtect.Enqueue((funcOffset, code.Length)); diff --git a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj index 088e37430..4bec9c929 100644 --- a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj +++ b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj @@ -615,7 +615,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = F4QL9A2T88; + DEVELOPMENT_TEAM = 95J8WZ4TN8; ENABLE_PREVIEWS = YES; ENABLE_TESTABILITY = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -632,6 +632,7 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); GCC_OPTIMIZATION_LEVEL = fast; GENERATE_INFOPLIST_FILE = YES; @@ -796,9 +797,13 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(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 = 0.0.8; - PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX1; + PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "MeloNX/Core/Headers/Ryujinx-Header.h"; @@ -816,7 +821,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = F4QL9A2T88; + DEVELOPMENT_TEAM = 95J8WZ4TN8; ENABLE_PREVIEWS = YES; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -833,6 +838,7 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); GCC_OPTIMIZATION_LEVEL = fast; GENERATE_INFOPLIST_FILE = YES; @@ -997,9 +1003,13 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(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 = 0.0.8; - PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX1; + PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "MeloNX/Core/Headers/Ryujinx-Header.h"; 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 1224faae1..6b053020b 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/xcuserdata/stossy11.xcuserdatad/xcschemes/xcschememanagement.plist b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcschemes/xcschememanagement.plist index 62375ba69..8ff6cf524 100644 --- a/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcschemes/xcschememanagement.plist @@ -12,12 +12,12 @@ Ryujinx.xcscheme_^#shared#^_ orderHint - 1 + 2 com.Stossy11.MeloNX.RyujinxAg.xcscheme_^#shared#^_ orderHint - 2 + 1 SuppressBuildableAutocreation diff --git a/src/MeloNX/MeloNX/Views/ContentView.swift b/src/MeloNX/MeloNX/Views/ContentView.swift index 0a21f33c3..4b0b12f44 100644 --- a/src/MeloNX/MeloNX/Views/ContentView.swift +++ b/src/MeloNX/MeloNX/Views/ContentView.swift @@ -44,7 +44,6 @@ struct ContentView: View { _config = State(initialValue: defaultConfig) let defaultSettings: [MoltenVKSettings] = [ - MoltenVKSettings(string: "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS", value: "2"), MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_PRIVATE_API", value: "1"), MoltenVKSettings(string: "MVK_CONFIG_RESUME_LOST_DEVICE", value: "1") ] diff --git a/src/MeloNX/MeloNX/Views/SettingsView/Info View/DeviceMemory.swift b/src/MeloNX/MeloNX/Views/SettingsView/Info View/DeviceMemory.swift deleted file mode 100644 index 70eccdd2f..000000000 --- a/src/MeloNX/MeloNX/Views/SettingsView/Info View/DeviceMemory.swift +++ /dev/null @@ -1,25 +0,0 @@ -// -// DeviceMemory.swift -// MeloNX -// -// Created by Tech Guy on 12/31/24. -// -import SwiftUI -import Foundation -import UIKit - -enum DeviceMemory { - /// Check if device has 8GB or more RAM - static var has8GBOrMore: Bool { - #if targetEnvironment(simulator) - return ProcessInfo.processInfo.physicalMemory >= 7 * 1024 * 1024 * 1024 // 8GB in bytes - #else - return ProcessInfo.processInfo.physicalMemory >= 7 * 1024 * 1024 * 1024 // 8GB in bytes - #endif - } - - /// Get total RAM in GB (rounded) - static var totalRAM: Int { - Int(ProcessInfo.processInfo.physicalMemory / 1024 / 1024 / 1024) + 1 - } -} diff --git a/src/MeloNX/MeloNX/Views/SettingsView/Info View/InfoView.swift b/src/MeloNX/MeloNX/Views/SettingsView/Info View/InfoView.swift deleted file mode 100644 index aed7ab426..000000000 --- a/src/MeloNX/MeloNX/Views/SettingsView/Info View/InfoView.swift +++ /dev/null @@ -1,95 +0,0 @@ -// -// InfoView.swift -// MeloNX -// -// Created by Tech Guy on 12/31/24. -// - - -import SwiftUI - -struct InfoView: View { - @AppStorage("entitlementExists") private var entitlementExists: Bool = false - @AppStorage("increaseddebugmem") private var increaseddebugmem: Bool = false - @AppStorage("extended-virtual-addressing") private var extended: Bool = false - @State var gd = false - let infoDictionary = Bundle.main.infoDictionary - - var body: some View { - ScrollView { - VStack { - Text("Welcome to MeloNX!") - .font(.largeTitle) - Divider() - Text("Entitlements:") - .font(.title) - .font(Font.headline.weight(.bold)) - Spacer() - .frame(height: 10) - Group { - Text("Required:") - .font(.title2) - .foregroundColor(.red) - .font(Font.headline.weight(.bold)) - Spacer() - .frame(height: 10) - Text("Increased Memory Limit: \(String(describing: entitlementExists))") - Spacer() - .frame(height: 10) - } - Group { - Spacer() - .frame(height: 10) - Text("Reccomended (paid):") - .font(.title2) - .font(Font.headline.weight(.bold)) - Spacer() - .frame(height: 10) - Text("Increased Debugging Memory Limit: \(String(describing: increaseddebugmem))") - .padding() - Text("Extended Virtual Addressing: \(String(describing: extended))") - } - - Divider() - Text("Memory:") - .font(.title) - .font(Font.headline.weight(.bold)) - Spacer() - .frame(height: 10) - Group { - Text("Current:") - .font(.title2) - .foregroundColor(.blue) - .font(Font.headline.weight(.bold)) - Spacer() - .frame(height: 10) - Text(String(DeviceMemory.totalRAM) + "GB") - Spacer() - .frame(height: 10) - } - - } - .padding() - - HStack { - Text("Version: \(getAppVersion())") - .foregroundColor(.white) - .font(.system(size: 12)) - .onTapGesture { - gd.toggle() - } - if getAppVersion() == "2.2", gd { - Text("Geometry Dash????? ;)") - .foregroundStyle(.secondary) - .font(.system(size: 5)) - } - } - } - } - func getAppVersion() -> String { - guard let version = infoDictionary?["CFBundleShortVersionString"] as? String else { - return "Unknown" - } - return version - } -} diff --git a/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift b/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift index dafa2a518..e016d8e88 100644 --- a/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift +++ b/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift @@ -298,10 +298,6 @@ struct SettingsView: View { } label: { Text("Advanced Options") } - NavigationLink(destination: InfoView()) { - Text("About") - - } } header: { Text("Advanced") .font(.title3.weight(.semibold)) diff --git a/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs b/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs index 108a2a55e..7395291dd 100644 --- a/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs +++ b/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs @@ -24,9 +24,7 @@ namespace Ryujinx.Graphics.Vulkan.MoltenVK config.UseMetalArgumentBuffers = true; config.SemaphoreSupportStyle = MVKVkSemaphoreSupportStyle.MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE; - config.SynchronousQueueSubmits = false; - - config.MaxActiveMetalCommandBuffersPerQueue = 192; + // config.SynchronousQueueSubmits = false; config.ResumeLostDevice = true;