From 48278905d1470f89be31668c738397f569af156a Mon Sep 17 00:00:00 2001 From: gdkchan Date: Wed, 9 Dec 2020 19:20:05 -0300 Subject: Rewrite scheduler context switch code (#1786) * Rewrite scheduler context switch code * Fix race in UnmapIpcRestorePermission * Fix thread exit issue that could leave the scheduler in a invalid state * Change context switch method to not wait on guest thread, remove spin wait, use SignalAndWait to pass control * Remove multi-core setting (it is always on now) * Re-enable assert * Remove multicore from default config and schema * Fix race in KTimeManager --- Ryujinx.Common/Configuration/ConfigurationState.cs | 31 ++++++++-------------- 1 file changed, 11 insertions(+), 20 deletions(-) (limited to 'Ryujinx.Common/Configuration/ConfigurationState.cs') diff --git a/Ryujinx.Common/Configuration/ConfigurationState.cs b/Ryujinx.Common/Configuration/ConfigurationState.cs index ef4a4337..94c9ac0e 100644 --- a/Ryujinx.Common/Configuration/ConfigurationState.cs +++ b/Ryujinx.Common/Configuration/ConfigurationState.cs @@ -25,7 +25,7 @@ namespace Ryujinx.Configuration public ReactiveObject DevColumn { get; private set; } public ReactiveObject VersionColumn { get; private set; } public ReactiveObject TimePlayedColumn { get; private set; } - public ReactiveObject LastPlayedColumn { get; private set; } + public ReactiveObject LastPlayedColumn { get; private set; } public ReactiveObject FileExtColumn { get; private set; } public ReactiveObject FileSizeColumn { get; private set; } public ReactiveObject PathColumn { get; private set; } @@ -198,11 +198,6 @@ namespace Ryujinx.Configuration /// public ReactiveObject EnableDockedMode { get; private set; } - /// - /// Enables or disables multi-core scheduling of threads - /// - public ReactiveObject EnableMulticoreScheduling { get; private set; } - /// /// Enables or disables profiled translation cache persistency /// @@ -230,17 +225,16 @@ namespace Ryujinx.Configuration public SystemSection() { - Language = new ReactiveObject(); - Region = new ReactiveObject(); - TimeZone = new ReactiveObject(); - SystemTimeOffset = new ReactiveObject(); - EnableDockedMode = new ReactiveObject(); - EnableMulticoreScheduling = new ReactiveObject(); - EnablePtc = new ReactiveObject(); - EnableFsIntegrityChecks = new ReactiveObject(); - FsGlobalAccessLogMode = new ReactiveObject(); - AudioBackend = new ReactiveObject(); - IgnoreMissingServices = new ReactiveObject(); + Language = new ReactiveObject(); + Region = new ReactiveObject(); + TimeZone = new ReactiveObject(); + SystemTimeOffset = new ReactiveObject(); + EnableDockedMode = new ReactiveObject(); + EnablePtc = new ReactiveObject(); + EnableFsIntegrityChecks = new ReactiveObject(); + FsGlobalAccessLogMode = new ReactiveObject(); + AudioBackend = new ReactiveObject(); + IgnoreMissingServices = new ReactiveObject(); } } @@ -414,7 +408,6 @@ namespace Ryujinx.Configuration CheckUpdatesOnStart = CheckUpdatesOnStart, EnableVsync = Graphics.EnableVsync, EnableShaderCache = Graphics.EnableShaderCache, - EnableMulticoreScheduling = System.EnableMulticoreScheduling, EnablePtc = System.EnablePtc, EnableFsIntegrityChecks = System.EnableFsIntegrityChecks, FsGlobalAccessLogMode = System.FsGlobalAccessLogMode, @@ -476,7 +469,6 @@ namespace Ryujinx.Configuration CheckUpdatesOnStart.Value = true; Graphics.EnableVsync.Value = true; Graphics.EnableShaderCache.Value = true; - System.EnableMulticoreScheduling.Value = true; System.EnablePtc.Value = false; System.EnableFsIntegrityChecks.Value = true; System.FsGlobalAccessLogMode.Value = 0; @@ -788,7 +780,6 @@ namespace Ryujinx.Configuration CheckUpdatesOnStart.Value = configurationFileFormat.CheckUpdatesOnStart; Graphics.EnableVsync.Value = configurationFileFormat.EnableVsync; Graphics.EnableShaderCache.Value = configurationFileFormat.EnableShaderCache; - System.EnableMulticoreScheduling.Value = configurationFileFormat.EnableMulticoreScheduling; System.EnablePtc.Value = configurationFileFormat.EnablePtc; System.EnableFsIntegrityChecks.Value = configurationFileFormat.EnableFsIntegrityChecks; System.FsGlobalAccessLogMode.Value = configurationFileFormat.FsGlobalAccessLogMode; -- cgit v1.2.3