[core/hle/service] move 'loader'+'jit' to guest thread (#4148)

loader is barely called whereas audio for example is called super often
thus demote loaderr

jit is only ever used by Super Mario 3D stars, and no other
games require this to be a separate jit thread
additionally even of 3D stars this is called often chary
so no; we dont need a dedicated thread for it either way

this pr should help low power devices/devices with less cores/threads
to schedule the existing emulator threads more efficiently
also moving to guest means the CPU threads get more loaded with
stuffings, which is a good thing as most of the time theyre
sleeping and/or waiting for a mutex

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4148
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
This commit is contained in:
lizzie
2026-07-25 23:46:59 +02:00
committed by crueter
parent f561a10bd8
commit dc1486485b
+3 -3
View File
@@ -89,9 +89,7 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system
for (auto const& e : std::vector<std::pair<std::string_view, void (*)(Core::System&)>>{
{"audio", &Audio::LoopProcess},
{"FS", &FileSystem::LoopProcess},
{"jit", &JIT::LoopProcess},
{"ldn", &LDN::LoopProcess},
{"Loader", &LDR::LoopProcess},
{"nvservices", &Nvidia::LoopProcess},
{"bsdsocket", &Sockets::LoopProcess},
})
@@ -120,19 +118,21 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system
{"glue", &Glue::LoopProcess},
{"grc", &GRC::LoopProcess},
{"hid", &HID::LoopProcess},
{"jit", &JIT::LoopProcess},
{"lbl", &LBL::LoopProcess},
{"Loader", &LDR::LoopProcess},
{"LogManager.Prod", &LM::LoopProcess},
{"mig", &Migration::LoopProcess},
{"mii", &Mii::LoopProcess},
{"mm", &MM::LoopProcess},
{"mnpp", &MNPP::LoopProcess},
{"nvnflinger", &Nvnflinger::LoopProcess},
{"NCM", &NCM::LoopProcess},
{"nfc", &NFC::LoopProcess},
{"nfp", &NFP::LoopProcess},
{"ngc", &NGC::LoopProcess},
{"nifm", &NIFM::LoopProcess},
{"nim", &NIM::LoopProcess},
{"nvnflinger", &Nvnflinger::LoopProcess},
{"npns", &NPNS::LoopProcess},
{"ns", &NS::LoopProcess},
{"olsc", &OLSC::LoopProcess},