forked from MeloNX/MeloNX
add SIGBUS breakpoint
This commit is contained in:
parent
8e229fe454
commit
c4c71a4cb6
@ -75,7 +75,6 @@
|
||||
Dependencies/XCFrameworks/libavutil.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
|
||||
Dependencies/XCFrameworks/libswresample.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
|
||||
Dependencies/XCFrameworks/libswscale.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
|
||||
Dependencies/XCFrameworks/libteakra.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
|
||||
};
|
||||
buildPhase = 4E80AA092CD6FAA800029585 /* Embed Libraries */;
|
||||
membershipExceptions = (
|
||||
@ -90,7 +89,6 @@
|
||||
Dependencies/XCFrameworks/libSPIRV.xcframework,
|
||||
Dependencies/XCFrameworks/libswresample.xcframework,
|
||||
Dependencies/XCFrameworks/libswscale.xcframework,
|
||||
Dependencies/XCFrameworks/libteakra.xcframework,
|
||||
Dependencies/XCFrameworks/MoltenVK.xcframework,
|
||||
Dependencies/XCFrameworks/SDL2.xcframework,
|
||||
);
|
||||
@ -496,7 +494,7 @@
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
INFOPLIST_KEY_UISupportsDocumentBrowser = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
@ -572,7 +570,7 @@
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
INFOPLIST_KEY_UISupportsDocumentBrowser = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
|
Binary file not shown.
@ -23,7 +23,13 @@
|
||||
<BreakpointActionProxy
|
||||
ActionExtensionID = "Xcode.BreakpointAction.DebuggerCommand">
|
||||
<ActionContent
|
||||
consoleCommand = "process handle -s false -n false">
|
||||
consoleCommand = "process handle SIGUSR1 -s false -n false">
|
||||
</ActionContent>
|
||||
</BreakpointActionProxy>
|
||||
<BreakpointActionProxy
|
||||
ActionExtensionID = "Xcode.BreakpointAction.DebuggerCommand">
|
||||
<ActionContent
|
||||
consoleCommand = "process handle SIGBUS -s false -n false">
|
||||
</ActionContent>
|
||||
</BreakpointActionProxy>
|
||||
</Actions>
|
||||
@ -45,30 +51,5 @@
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "900AC928-2B0F-4BBE-A47D-D6B17570E9BB"
|
||||
shouldBeEnabled = "Yes"
|
||||
nameForDebugger = "SIGUSR1-Disable"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "Yes"
|
||||
filePath = "MeloNX/Views/ContentView.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "133"
|
||||
endingLineNumber = "133"
|
||||
landmarkName = "start(displayid:)"
|
||||
landmarkType = "7">
|
||||
<Actions>
|
||||
<BreakpointActionProxy
|
||||
ActionExtensionID = "Xcode.BreakpointAction.DebuggerCommand">
|
||||
<ActionContent
|
||||
consoleCommand = "process handle --stop false SIGUSR1">
|
||||
</ActionContent>
|
||||
</BreakpointActionProxy>
|
||||
</Actions>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
</Breakpoints>
|
||||
</Bucket>
|
||||
|
@ -15,6 +15,20 @@ struct Controller: Identifiable, Hashable {
|
||||
let name: String
|
||||
}
|
||||
|
||||
struct iOSNav<Content: View>: View {
|
||||
@ViewBuilder var content: () -> Content
|
||||
|
||||
var body: some View {
|
||||
if #available(iOS 16, *) {
|
||||
NavigationStack(root: content)
|
||||
} else {
|
||||
NavigationView(content: content)
|
||||
.navigationViewStyle(StackNavigationViewStyle())
|
||||
.navigationViewStyle(.stack)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Ryujinx {
|
||||
private var isRunning = false
|
||||
|
||||
@ -40,7 +54,7 @@ class Ryujinx {
|
||||
tracelogs: Bool = false,
|
||||
listinputids: Bool = false,
|
||||
fullscreen: Bool = false,
|
||||
hostMappedMemory: Bool = false,
|
||||
hostMappedMemory: Bool = true,
|
||||
disableVSync: Bool = true,
|
||||
disableShaderCache: Bool = false,
|
||||
disableDockedMode: Bool = true,
|
||||
|
@ -11,7 +11,8 @@ import GameController
|
||||
|
||||
struct MoltenVKSettings: Codable, Hashable {
|
||||
let string: String
|
||||
var value: String
|
||||
var bool: Bool?
|
||||
var value: String?
|
||||
}
|
||||
|
||||
struct ContentView: View {
|
||||
@ -22,11 +23,11 @@ struct ContentView: View {
|
||||
@State var currentControllers: [Controller] = []
|
||||
@State var config: Ryujinx.Configuration = Ryujinx.Configuration(gamepath: "")
|
||||
|
||||
@State private var settings: [MoltenVKSettings] = [
|
||||
MoltenVKSettings(string: "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS", value: "0"),
|
||||
MoltenVKSettings(string: "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS", value: "0"),
|
||||
@State var settings: [MoltenVKSettings] = [
|
||||
// MoltenVKSettings(string: "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS", value: ""),
|
||||
// MoltenVKSettings(string: "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS", value: "1"),
|
||||
MoltenVKSettings(string: "MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE", value: "1024"),
|
||||
MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS", value: "0"),
|
||||
MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS", value: "1"),
|
||||
MoltenVKSettings(string: "MVK_CONFIG_RESUME_LOST_DEVICE", value: "1")
|
||||
]
|
||||
|
||||
@ -58,7 +59,7 @@ struct ContentView: View {
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
NavigationStack {
|
||||
iOSNav {
|
||||
|
||||
if let game {
|
||||
ZStack {
|
||||
@ -80,7 +81,7 @@ struct ContentView: View {
|
||||
List {
|
||||
Section("Settings") {
|
||||
NavigationLink {
|
||||
SettingsView(config: $config)
|
||||
SettingsView(config: $config, MoltenVKSettings: $settings)
|
||||
} label: {
|
||||
Text("Config")
|
||||
}
|
||||
@ -146,7 +147,7 @@ struct ContentView: View {
|
||||
|
||||
let physicalMemory = ProcessInfo.processInfo.physicalMemory
|
||||
let totalMemoryInGB = Double(physicalMemory) / (1024 * 1024 * 1024)
|
||||
let mem = totalMemoryInGB - 1
|
||||
let mem = totalMemoryInGB
|
||||
print(mem)
|
||||
// Allocate memory
|
||||
let pointer = UnsafeMutableRawPointer.allocate(byteCount: Int(mem), alignment: MemoryLayout<UInt8>.alignment)
|
||||
|
@ -9,39 +9,41 @@ import SwiftUI
|
||||
|
||||
struct SettingsView: View {
|
||||
@Binding var config: Ryujinx.Configuration
|
||||
@Binding var MoltenVKSettings: [MoltenVKSettings]
|
||||
|
||||
var body: some View {
|
||||
Form {
|
||||
Section(header: Text("Ryujinx")) {
|
||||
Section(header: Text("Graphics and Performance")) {
|
||||
Toggle("Fullscreen", isOn: $config.fullscreen)
|
||||
Toggle("Disable V-Sync", isOn: $config.disableVSync)
|
||||
Toggle("Disable Shader Cache", isOn: $config.disableShaderCache)
|
||||
Toggle("Enable Texture Recompression", isOn: $config.enableTextureRecompression)
|
||||
}
|
||||
|
||||
Section(header: Text("Graphics and Performance")) {
|
||||
Toggle("Fullscreen", isOn: $config.fullscreen)
|
||||
Toggle("Disable V-Sync", isOn: $config.disableVSync)
|
||||
Toggle("Disable Shader Cache", isOn: $config.disableShaderCache)
|
||||
Toggle("Enable Texture Recompression", isOn: $config.enableTextureRecompression)
|
||||
}
|
||||
Section(header: Text("Input Settings")) {
|
||||
Toggle("List Input IDs", isOn: $config.listinputids)
|
||||
Toggle("Host Mapped Memory", isOn: $config.hostMappedMemory)
|
||||
Toggle("Disable Docked Mode", isOn: $config.disableDockedMode)
|
||||
}
|
||||
|
||||
Section(header: Text("Input Settings")) {
|
||||
Toggle("List Input IDs", isOn: $config.listinputids)
|
||||
Toggle("Host Mapped Memory", isOn: $config.hostMappedMemory)
|
||||
Toggle("Disable Docked Mode", isOn: $config.disableDockedMode)
|
||||
}
|
||||
Section(header: Text("Logging Settings")) {
|
||||
Toggle("Enable Debug Logs", isOn: $config.debuglogs)
|
||||
Toggle("Enable Trace Logs", isOn: $config.tracelogs)
|
||||
}
|
||||
|
||||
Section(header: Text("Logging Settings")) {
|
||||
Toggle("Enable Debug Logs", isOn: $config.debuglogs)
|
||||
Toggle("Enable Trace Logs", isOn: $config.tracelogs)
|
||||
}
|
||||
Section(header: Text("Game Settings")) {
|
||||
//TextField("Game Path", text: $config.gamepath)
|
||||
|
||||
Section(header: Text("Game Settings")) {
|
||||
//TextField("Game Path", text: $config.gamepath)
|
||||
|
||||
TextField("Additional Arguments", text: Binding(
|
||||
get: {
|
||||
config.additionalArgs.joined(separator: ", ")
|
||||
},
|
||||
set: { newValue in
|
||||
config.additionalArgs = newValue.split(separator: ",").map { String($0).trimmingCharacters(in: .whitespaces) }
|
||||
}
|
||||
))
|
||||
TextField("Additional Arguments", text: Binding(
|
||||
get: {
|
||||
config.additionalArgs.joined(separator: ", ")
|
||||
},
|
||||
set: { newValue in
|
||||
config.additionalArgs = newValue.split(separator: ",").map { String($0).trimmingCharacters(in: .whitespaces) }
|
||||
}
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
|
Loading…
x
Reference in New Issue
Block a user