Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kirin 950 multthread issue #8895

Closed
sum2012 opened this issue Aug 7, 2016 · 5 comments · Fixed by #10056
Closed

Kirin 950 multthread issue #8895

sum2012 opened this issue Aug 7, 2016 · 5 comments · Fixed by #10056

Comments

@sum2012
Copy link
Collaborator

sum2012 commented Aug 7, 2016

My freind said that PPSSPP only use Kirin' s two weak core in multthread.
Other CPU such as Qualcomm 801 ,MediaTek 6592 , MediaTek 6752 are stronger in multthread.
Any possible to solve it ? Thanks

@unknownbrackets
Copy link
Collaborator

Unfortunately this happens on some devices. It MAY help to turn on "real time clock sync".

The reason: in some games, there are only "spikes" of activity. Much of the time, PPSSPP may actually not use a ton of CPU - and the OS may decide to save battery power by putting it on the weaker cores. But this causes problems when the spikes happen.

This is why some users report custom ROMs with customized CPU governors help...

-[Unknown]

@sum2012
Copy link
Collaborator Author

sum2012 commented Aug 7, 2016

My friend said no help.
One core 90% full speed but after a while it would become to use weaker core

3

1

2

@sum2012
Copy link
Collaborator Author

sum2012 commented Aug 9, 2016

He tried to use only power core,but only use 1 core in playing.
This issue I think can use.
Closing

@sum2012 sum2012 closed this as completed Aug 9, 2016
@sum2012 sum2012 reopened this Aug 10, 2016
@sum2012
Copy link
Collaborator Author

sum2012 commented Aug 10, 2016

Other users in china have same problem
Keep issue here.
The main problem is that why cannot use 2 power core to play.

@unknownbrackets
Copy link
Collaborator

unknownbrackets commented Aug 13, 2016

Because the PSP is a single core device (so games are written in a way that won't allow them to be run on multiple cores or they'll crash), and OpenGL is a single core API.

Think of CPU cores as employees. OpenGL allows one employee to be assigned to rendering. Another employee is assigned to the CPU. We're actually able to assign another employee to disk activity and even another one to some audio decoding.

But the audio decoding and disk employees don't have much to do. They spend most of their time just sitting around doing nothing. Waiting for that moment when it's their time to shine for a brief few milliseconds.

The OpenGL rendering employee is super busy. But she isn't willing to work with other people - so we're stuck with only one person doing rendering. If rendering is behind, everything is behind, and we're stuck. We can't have two employees work on rendering.

The situation is the same with CPU emulation. We're limited to one employee working on it.

That's why it uses one core - you're seeing that one of the employees is super busy, and making all the others wait for them to complete their job. Someone is holding everything up.

Vulkan may allow spreading out the GPU load onto more cores (multiple employees doing rendering), but there's a lot of complexity there.

-[Unknown]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants