I've seen a video that someone linked to on Reddit while playing Super Mario Galaxy (?) on the SteamDeck through Dolphin.
In the first part of the video he played with the default settings, and MangoHud displayed that each of the CPU cores was only using 20% of it's power (not too surprising, because Dolphin can only utilize like two cores properly). The CPU clock while doing so was around ~1950 MHz while he was doing that, and the game was stuttering.
Then he disabled a bunch of these CPU cores so the device only used 3 out of the 8 available ones, and that instantly made the CPU boost to ~3400 MHz, and the stuttering in the game was gone immediately.
The video can be found here: https://www.reddit.com/r/SteamDeck/comments/ue2vvt/this_plugin_makes_emulation_so_much_better/
Now I do not really know that much about CPU and cores and multithreading and whatever - does anyone have an explaination as to why this works, and if this could be built into Dolphin so it automatically does whatever this script does while a game is running? While it looks nice and easy in the GUI where he disables the additional cores this is actually a mod / hack for SteamOS that would need to be installed manually before it can be used.
Is this even useful / a good way what he's doing in the video, or would that have other disadvantages?
I'd assume that by default the OS tries to have each core doing about the same work, moving threads around on the available cores all the time? And if you manually disable a bunch of cores they'll be doing nothing, and the remaining cores (that actually run Dolphin) can boost to a higher frequency.
Can stuff like this be done per application? Could Dolphin communicate to the OS "Hey, only put my threads on CPUs 0, 1 and 2 so these can boost higher and I have more performance"? Or would Dolphin need to set these things for the whole system?
For standalone computers where you have a bunch of stuff other than Dolphin that's running, disabling a bunch of cores might not be ideal, but on a SteamDeck in gaming mode where in 99.9% of all cases you only have one single game running and nothing else - why not take that extra performance?
In the first part of the video he played with the default settings, and MangoHud displayed that each of the CPU cores was only using 20% of it's power (not too surprising, because Dolphin can only utilize like two cores properly). The CPU clock while doing so was around ~1950 MHz while he was doing that, and the game was stuttering.
Then he disabled a bunch of these CPU cores so the device only used 3 out of the 8 available ones, and that instantly made the CPU boost to ~3400 MHz, and the stuttering in the game was gone immediately.
The video can be found here: https://www.reddit.com/r/SteamDeck/comments/ue2vvt/this_plugin_makes_emulation_so_much_better/
Now I do not really know that much about CPU and cores and multithreading and whatever - does anyone have an explaination as to why this works, and if this could be built into Dolphin so it automatically does whatever this script does while a game is running? While it looks nice and easy in the GUI where he disables the additional cores this is actually a mod / hack for SteamOS that would need to be installed manually before it can be used.
Is this even useful / a good way what he's doing in the video, or would that have other disadvantages?
I'd assume that by default the OS tries to have each core doing about the same work, moving threads around on the available cores all the time? And if you manually disable a bunch of cores they'll be doing nothing, and the remaining cores (that actually run Dolphin) can boost to a higher frequency.
Can stuff like this be done per application? Could Dolphin communicate to the OS "Hey, only put my threads on CPUs 0, 1 and 2 so these can boost higher and I have more performance"? Or would Dolphin need to set these things for the whole system?
For standalone computers where you have a bunch of stuff other than Dolphin that's running, disabling a bunch of cores might not be ideal, but on a SteamDeck in gaming mode where in 99.9% of all cases you only have one single game running and nothing else - why not take that extra performance?