From c6230fc02ee4990a73e08b3048b7f5acf2d6f0bb Mon Sep 17 00:00:00 2001 From: LotP <22-lotp@users.noreply.git.ryujinx.app> Date: Sat, 11 Oct 2025 07:47:45 -0500 Subject: [PATCH] Sync thread name on Schedule Set the name of the HostThread on Schedule() if the thread name isn't already set and if we fetch a valid thread name from the guest thread. --- src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs | 6 ++++++ src/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs b/src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs index 86242e110..668111aeb 100644 --- a/src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs +++ b/src/Ryujinx.HLE/HOS/Kernel/Threading/KScheduler.cs @@ -296,6 +296,12 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading KThread currentThread = KernelStatic.GetCurrentThread(); KThread selectedThread = _state.SelectedThread; + if (!currentThread.IsThreadNamed && currentThread.GetThreadName() != "") + { + currentThread.HostThread.Name = $"<{currentThread.GetThreadName()}>"; + currentThread.IsThreadNamed = true; + } + // If the thread is already scheduled and running on the core, we have nothing to do. if (currentThread == selectedThread) { diff --git a/src/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs b/src/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs index 437de7959..3ad65e680 100644 --- a/src/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs +++ b/src/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs @@ -33,6 +33,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading public ulong AffinityMask { get; set; } public ulong ThreadUid { get; private set; } + + public bool IsThreadNamed { get; set; } private long _totalTimeRunning;