(10-14-2012, 06:04 AM)NaturalViolence Wrote: Interesting, apparently PCSX2 is not as well multithreaded as I thought. There are at least 6 major components in the PS2 that run in parallel and therefore could be emulated in parallel:
EE CPU
VPU0
VPU1
IOP
GS
SPU
And if SPU emulation where done as LLE that could be further split into SPU0 and SPU1. It seems PCSX2 normally has EE, IOP, VPU0, and VPU2 emulation all on the first thread and GS/SPU emulation on the second thread. MTVU hack splits VPU1 emuation into a third thread.
Threading IOP and SPU probably wouldn't improve performance at all but threading VPU0 should improve performance dramatically in some games. I wonder if the devs have thought about that or if it's even possible.
EE and VPU0 need tight sync, and VPU0 is rarely a bottleneck anyway. You should read http://pcsx2.net/developer-blog/89-threading-vu1.html