Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Why was Multi-threading removed?
05-15-2018, 12:20 PM
Post: #16
RE: Why was Multi-threading removed?
Dude learn how to read before you comment, the post of mine you commented explains that the option GuilhermeGS2 mentioned does something else and has nothing to do with MT, it also mentions new MT which not only is already finished, it's also safe enough to be always activated and much faster than the broken option which existed before.

http://forums.ppsspp.org/showthread.php?tid=6594 - Custom PPSSPP Shaders!
http://forums.ppsspp.org/showthread.php?tid=3590&pid=117172#pid117172 - simple CE scripts to help creating CWCheats,
https://github.com/LunaMoo/PPSSPP_workarounds - CWCheat workarounds.
Find all posts by this user
Quote this message in a reply
05-15-2018, 06:56 PM
Post: #17
RE: Why was Multi-threading removed?
(05-15-2018 09:48 AM)mattiiee Wrote:  
(12-15-2017 12:21 PM)LunaMoo Wrote:  No lol. Not only PPSSPP never could use "as many cores as you have", also "CPUCore" is a PPSSPP cpu core, which as follows means: interpreter, JIT or IR-interpreter and has nothing to do with multithreading.


"Multithreading (experimental)" was completely removed since it was really bad and causing a lot of device specific issues with many people ignoring all the warnings and using it anyway breaking their games just because the setting worked for someone else or even without any reason at all other than having a multi core device.
It will never return in it's old form, currently different, safer MT exists only in Vulkan backend only where it's enabled by default and does not need an option, that new multithreading method might eventually be backported to GL backend, but it will be unlikely to give same results as the broken option, so if you absolutely required that feature on some old device without Vulkan, you might as well continue using old PPSSPP versions on that device.

Why didn't the devs leave the Multithreading untouched? Multithread option causes crashes and break games as we all know. The user can untick that setting instead. Now it looks like the latest version of PPSSPP is exclusively for those Vulkan supported phones, shitty sounds and bad framerate are all that our mid-end devices get without MT option.


(12-15-2017 11:52 AM)GuilhermeGS2 Wrote:  Go to PSP/SYSTEM then edit ppsspp.ini, look for CPUCore=1 and put how much cores your CPU have.

Multi-threading option may crash some games.

That trick isn't working for me. Setting CPUCore higher than 1 will make it slower, and even kicking me out from the app.


You should try on of the latest developer builds then. It utilizes a new OpenGL Multithreading code that greatly increases emulation speed and is much more stable than the old method. You'll see speeds that nearly match Vulkan in some games.
Find all posts by this user
Quote this message in a reply
05-16-2018, 03:13 PM (This post was last modified: 05-16-2018 03:14 PM by gir489.)
Post: #18
RE: Why was Multi-threading removed?
MIPS is generally very time specific. I remember there was a piece of software to overclock the PSP's CPU from 333 Mhrtz to 444 Mhrtz. This would have wildly varying results, resulting usually a crash. The biggest problem with multithreading back in the era of PSP (2005) was an issue of lockstepping threads. This has been solved now by usually a hypervisor or some kind of moderator piece in front of the OS to enforce lockstepping, but the PSP didn't have this. Back then, it was all about speed, and a lot of games especially the PSP are time sensitive. They expect X cycles takes about Y seconds, and write their code heavily on this. For MIPS (the CPU type the PSP has) is generally the following table. 5/4/4/3/3. But you can know for sure that a single instruction would never take more than 5 cycles. If you reduce that by allowing certian threads to return sooner by hyperthreading or multithreading, you could risk a certian piece of code trying to dereference something like a pointer or struct in memory with something that may or may not be there and end up with a race condition.

TL;DR It was probably removed to enforce consistency with MIPS HLE (High Level Emulation).
Find all posts by this user
Quote this message in a reply
05-17-2018, 11:51 PM
Post: #19
RE: Why was Multi-threading removed?
Well, the multithreading setting actually never tried to run MIPS threads on separate cores - which would quickly crash a ton of games indeed. Instead, it tried to interpret graphics commands on a separate core (it would never use more than one core for this purpose.)

This wasn't a good approach, because it turns out MIPS code ALSO often makes assumptions about how quickly or slowly graphics render.

It was removed because it was in the way. And now we have something much better because it was out of the way. The strategy worked great.

-[Unknown]
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump: