From 4150452f5a7baa8f5f65e19162acadff31f9ec99 Mon Sep 17 00:00:00 2001 From: lizzie Date: Thu, 25 Sep 2025 03:24:51 +0000 Subject: [PATCH] noone gets thread affinity controls Signed-off-by: lizzie --- src/common/thread.cpp | 50 ----------------------------------- src/core/cpu_manager.cpp | 1 - src/video_core/gpu_thread.cpp | 4 +-- 3 files changed, 1 insertion(+), 54 deletions(-) diff --git a/src/common/thread.cpp b/src/common/thread.cpp index da1fa9b6c5..5ef6bbf796 100644 --- a/src/common/thread.cpp +++ b/src/common/thread.cpp @@ -33,56 +33,6 @@ namespace Common { -#ifdef _WIN32 - -void SetCurrentThreadPriority(ThreadPriority new_priority) { - auto handle = GetCurrentThread(); - int windows_priority = 0; - switch (new_priority) { - case ThreadPriority::Low: - windows_priority = THREAD_PRIORITY_BELOW_NORMAL; - break; - case ThreadPriority::Normal: - windows_priority = THREAD_PRIORITY_NORMAL; - break; - case ThreadPriority::High: - windows_priority = THREAD_PRIORITY_ABOVE_NORMAL; - break; - case ThreadPriority::VeryHigh: - windows_priority = THREAD_PRIORITY_HIGHEST; - break; - case ThreadPriority::Critical: - windows_priority = THREAD_PRIORITY_TIME_CRITICAL; - break; - default: - windows_priority = THREAD_PRIORITY_NORMAL; - break; - } - SetThreadPriority(handle, windows_priority); -} - -#else - -void SetCurrentThreadPriority(ThreadPriority new_priority) { - pthread_t this_thread = pthread_self(); - - const auto scheduling_type = SCHED_OTHER; - s32 max_prio = sched_get_priority_max(scheduling_type); - s32 min_prio = sched_get_priority_min(scheduling_type); - u32 level = (std::max)(static_cast(new_priority) + 1, 4U); - - struct sched_param params; - if (max_prio > min_prio) { - params.sched_priority = min_prio + ((max_prio - min_prio) * level) / 4; - } else { - params.sched_priority = min_prio - ((min_prio - max_prio) * level) / 4; - } - - pthread_setschedparam(this_thread, scheduling_type, ¶ms); -} - -#endif - #ifdef _MSC_VER // Sets the debugger-visible name of the current thread. diff --git a/src/core/cpu_manager.cpp b/src/core/cpu_manager.cpp index 1a80fcfaa4..7764b5e43b 100644 --- a/src/core/cpu_manager.cpp +++ b/src/core/cpu_manager.cpp @@ -195,7 +195,6 @@ void CpuManager::RunThread(std::stop_token token, std::size_t core) { name = "CPUThread"; } Common::SetCurrentThreadName(name.c_str()); - Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical); auto& data = core_data[core]; data.host_context = Common::Fiber::ThreadToFiber(); diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index d3f256500a..96a2f1520e 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp @@ -23,9 +23,7 @@ namespace VideoCommon::GPUThread { static void RunThread(std::stop_token stop_token, Core::System& system, VideoCore::RendererBase& renderer, Core::Frontend::GraphicsContext& context, Tegra::Control::Scheduler& scheduler, SynchState& state) { - std::string name = "GPU"; - - Common::SetCurrentThreadName(name.c_str()); + Common::SetCurrentThreadName("GPU"); system.RegisterHostThread(); auto current_context = context.Acquire();