forums.PPSSPP.org
Why was Multi-threading removed? - Printable Version

+- forums.PPSSPP.org (https://forums.ppsspp.org)
+-- Forum: PPSSPP - Playstation Portable Simulator Suitable for Playing Portably (/forumdisplay.php?fid=1)
+--- Forum: General Discussion and Announcements (/forumdisplay.php?fid=2)
+--- Thread: Why was Multi-threading removed? (/showthread.php?tid=23785)

Pages: 1 2


Why was Multi-threading removed? - goldenboy999 - 12-15-2017 06:01 AM

Hello, I just updated to the latest version today from 1.4.2 to 1.5.4.

I'm using a fairly old phone and the Multi-threading option is what made games such as Tekken 6, Gods Eater, and other fairly taxing games on my phone playable at a full speed. Surely there was no reason to remove the option if you can just tick off the box to not have it on? I've reverted back to v1.4.2 temporarily and hoping that the removal of multi-threading was just a minor oversight and would be added back in future versions of the app as I, and I assume, many people who are in the same predicament as I would like to still use the updated version of the app.


RE: Why was Multi-threading removed? - GuilhermeGS2 - 12-15-2017 11:52 AM

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.


RE: Why was Multi-threading removed? - LunaMoo - 12-15-2017 12:21 PM

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.


RE: Why was Multi-threading removed? - GuilhermeGS2 - 12-15-2017 01:07 PM

(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.

So my mistake, I was sure I saw this opition changed when multithreading was enabled.


RE: Why was Multi-threading removed? - goldenboy999 - 12-15-2017 02:21 PM

(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.

If the concern is because other people are too stubborn or too trigger happy that they cause problems for themselves, is there a chance that a separate dev/beta version of the same update but has the multithreading option in it be implemented for those who need it to run certain games at full speed?

If not then I guess we'll just have to stick with v1.4.2 permanently or wait for the backporting to happen if at all.


RE: Why was Multi-threading removed? - LunaMoo - 12-15-2017 03:38 PM

Henrik already started preparing GL backend for new MT, but it seems that it still requires lots of bothersome work that might not happen anytime soon. At this point noone can tell how good or bad new multithreading method in GL will be, the only real goal for it is to be safer, so at least it shouldn't horribly break things once it does happen.

PPSSPP doesn't have any separate dev/beta versions.
There's just one master where all work get's merged, eventually before each release more experimental stuff get delayed and only minor changes, fixes and regressions matter. Then when PPSSPP get's released all the common issues get hotfixed and when things looks good enough, all delayed stuff get's merged and the cycle starts again;p.

PPSSPP is open source so literally anyone can fork it and maintain separate version, as long as the source code of it is released, custom builds can also be released, so really anyone desperate enough could make a new ppsspp version with old MT restored.
I can only speak for myself and I definitely have no plans on restoring that option myself, to me multithreading in emulators where things have to work in sync is bad because:
- when not bothering to synchronize - bugs will happen and will depend on the hardware,
- when synchronizing everything correctly - dividing 1 thread to 2 might depending on the hardware make them much heavier, sometimes resulting in slowdown, but even when it results in speedup pretty much always will be at a cost of increased power consumption and I don't like it;p.

PS. What's with everyone quoting full posts;c, I can't be the only person who finds it ridiculous, that more than half of this thread visually is taken by copy paste of my reply... annoying.


RE: Why was Multi-threading removed? - goldenboy999 - 12-15-2017 11:16 PM

Lol. Sorry for the lazy quoting Tongue; I also really appreciate the detailed responses. I am well aware of the downsides of having multithreading on and it hasn't really affected me much, personally. Of course I don't use it for every game; I only have it on select games like Tekken 6, and it would crash maybe 1 out of the 100 times I'm playing it. It's very rare for me and am comfortable trading a little bit of inconvenience for having it run on 100% speed. Hopefully, all goes well and the safer multithreading backporting for opengl will happen sooner than expected. Cheers Smile


RE: Why was Multi-threading removed? - qwer4321 - 12-16-2017 10:26 AM

MultiThreading - removed
AutoRotation - removed
Post processing shaders - work only after restart.

PPSSPP team start to act like Dolphin idiotic team.


RE: Why was Multi-threading removed? - LunaMoo - 12-16-2017 10:51 AM

Post process shaders works fine in any backend here(except d3d9 where it was never worth supporting them and the option was hidden. If you have different experience, that's probably a device specific problem, limited to your device which nobody else knows about.

As an ocassional contributor - thanks for the compliment, Dolphin is considered by many most complete emulator with one of the most competent team which is never submitting to pressure coming from haters whenever unpopular work has to be done for the sake of wider picture.


RE: Why was Multi-threading removed? - Asferot - 12-16-2017 04:24 PM

(12-16-2017 10:26 AM)qwer4321 Wrote:  MultiThreading - removed
AutoRotation - removed
Post processing shaders - work only after restart.

PPSSPP team start to act like Dolphin idiotic team.

MultiThreading - Removed because it broke most if not all games in certain scenarios, and "Its needed for some games to run full speed" is complete bullshit.

AutoRotation - Also can by Buggy/laggy on many devices.

Post processing shaders - Work only after restart, because you did something and now are whining because of it?

¯\_(ツ)_/¯

And that comment about Dolphin team is just LOL.


RE: Why was Multi-threading removed? - LG Fanatic - 12-17-2017 05:49 AM

(12-16-2017 10:26 AM)qwer4321 Wrote:  MultiThreading - removed
AutoRotation - removed
Post processing shaders - work only after restart.

PPSSPP team start to act like Dolphin idiotic team.

Qwer, please don't be like one of those users who expect developers to cater to their every whim. Remember this project is FREE. The work the developers have done these last four years is nothing short of amazing. Show some gratitude.

On the subject at hand, I actually find the improvements they've made in software rendering have made multi-threading moot. I'm getting the same performance in Tekken 5 now, when before I would need multi-threading enabled to get there.


RE: Why was Multi-threading removed? - qwer4321 - 12-17-2017 05:53 AM

(12-16-2017 10:51 AM)LunaMoo Wrote:  As an ocassional contributor - thanks for the compliment, Dolphin is considered by many most complete emulator with one of the most competent team which is never submitting to pressure coming from...
Just slaves of the crowd.

(12-16-2017 04:24 PM)Asferot Wrote:  MultiThreading - Removed because it broke most if not all games in certain scenarios. "Its needed for some games to run full speed" is complete bullshit.
It doesn't break anything in my case. In my case it's helpful speedup.

(12-16-2017 04:24 PM)Asferot Wrote:  AutoRotation - Also can by Buggy/laggy on many devices.
Work perfect for me.

(12-16-2017 04:24 PM)Asferot Wrote:  Post processing shaders - Work only after restart, because you did something and now are whining because of it?
You think that you are smart - then just replace "something" with more specific. ¯\_(ツ)_/¯ Can you?

I cheked it again. Post processing shaders doesn't work at all now. (PC-W7-GT440). Some of shader's what change resolution (xBR and other) just blink a bit, but the picture are the same.

May be bug in ppsspp.ini?


RE: Why was Multi-threading removed? - [Unknown] - 12-17-2017 05:58 AM

Simply put, the original implementation of multithreading (which I wrote) was misguided. We understand the PSP better now and it was the wrong way to do it. Simple as that.

We have a new approach, and that approach works on Vulkan, but needs more work on OpenGL/etc. There's a good chance this new approach will be faster and less buggy, even for OpenGL (it's certainly both of those for Vulkan.) Unfortunately, OpenGL makes threading a lot more complex than more modern APIs like Vulkan, but it's being actively worked on.

To make things work cleanly, we had to remove the old, wrong, misguided approach. It was a bit complex, and got in the way when implementing changes.

The option itself will hopefully never return. If we get it working well with OpenGL, there should simply be no reason to turn it off. There's already no way to turn it off for Vulkan.

Auto rotation was causing problems on a bunch of devices, especially with changes that had to be made for Vulkan. It's possible it may come back.

If you think 1.4.2 is better for your current phone - just stick with it until 1.6.0. And if you get a new one before then which supports Vulkan, definitely update. In the meantime, hold tight.

-[Unknown]


RE: Why was Multi-threading removed? - goldenboy999 - 12-17-2017 07:22 AM

(12-16-2017 04:24 PM)Asferot Wrote:  MultiThreading - Removed because it broke most if not all games in certain scenarios, and "Its needed for some games to run full speed" is complete bullshit.

What a presumptuous, and arrogant statement. I'm using an old phone and can't afford to buy a new one atm and I can only play some games at full speed with multi threading on. Sure, it may crash, but the chances of it happening was rare for me, so I found the speed I gained was way worth the minor inconvenience.


@[Unkown]

Thanks for the hardwork. I'm eagerly anticipating the next update that utilizes the better multithreading you guys are working on. Yeah, in the meantime, I'll stick with 1.4.2.


RE: Why was Multi-threading removed? - mattiiee - 05-15-2018 09:48 AM

(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.