(04-22-2013, 08:25 PM)filenotfound Wrote: [ -> ]Im curious on how many threads pcsx2 uses and how many it can use.
So by default, it uses what, 2 threads?
When you enable MTVU, does it use 3 threads or 4? or dependent on your cpu?
im trying to figure out exactly how many threads it uses with that, to try and figure out how many extra software rendering threads are possible.
as if you have 4 threads, and you are using 4, you arnt really going to be able to use any more for software rendering.
Now on that subject, is there a limit to how many extra threads you can use for software rendering?
what about the case of like 12 threaded cpus like the i7-3960? could you use something like 8 rendering threads for software rendering lol?
Remember, the number of threads in this case means the number of threads the application can open and keep synced. The OS can open dozens of them. Of course "active" at same time depend on the number of available cores.
Think it as a complex traffic system with semaphores controlling the whole mess (and you'll not be wrong). That's possible because a thread is not always doing something actively, it may be waiting response of some other device (like the controller or keyboard, the disk...) and then another thread becomes active meanwhile and the cycle repeats.
Normally a module or process will try and avoid opening more threads than the amount of physical cores and most of times not even that much.
One good example to understand this is looking to the ini tweaks for Bethesda games, once hosted by the tweakguides.com site.
On Oblivion game is advised to increase the havoc to 9 threads, to actually activate threaded processing for several other parameters in the game and to include a line limiting the number of actual "hardware" threads to the amount of cores in your CPU.
That's no all, Fallout 3, despite being newer than Oblivion (yet using the same engine slightly modified), was found you should limit the hardware threads to 2 cores max, despite the number of them in the CPU.
That's tell us it's not just defining the number of threads the application can open, it must be able to keep them under control or things go astray. And PS2 architecture is not the tree model common on most nowadays software (and then good for multithreading) but pipelined what is bad for threaded processing.
Resuming, you can still define a reasonable number of threads for GSDX software mode and yet activate MTVU having some gain in performance.
The other side of that coin is not all programs react equal to this and in the specific case some games will take greater advantage of MTVU while another game may just crash it.
Sorry, already too long post, I hope the main idea was passed.