forums.PPSSPP.org
Current state of Snapdragon-based CPUs in PPSSPP - Printable Version

+- forums.PPSSPP.org (https://forums.ppsspp.org)
+-- Forum: PPSSPP - Playstation Portable Simulator Suitable for Playing Portably (/forumdisplay.php?fid=1)
+--- Forum: Development (/forumdisplay.php?fid=3)
+--- Thread: Current state of Snapdragon-based CPUs in PPSSPP (/showthread.php?tid=7069)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


Current state of Snapdragon-based CPUs in PPSSPP - KingpinZero - 10-28-2013 06:16 AM

Dear Henrik, developers, to whom it may concern;

I just wanted to create a thread that could be useful for those snapdragon users that are still waiting for a better support, or a bit of speedup, for these cpu's.
As you may know, Snapdragons are the cpus chosed by Google to build their google nexus devices on; its clear that with Samsung adopting such cpus as well as LG, Motorola and Oppo, this will be the new hardware "ecosystem" for Android, a thing much needed compared to iOS.

So i own a Nexus 7 2013 which althought being advertised as Snapdragon S4, its actually a Snapdragon 600 with Krait 300 cores (instead of 200, like the N4). It has an Adreno 320 gpu, which supports OpenGL ES 3.0.

The current state of ppsspp makes Exynos 4/Mali 400 gpus shine, running some games with 1:1 render at fullspeed without frameskip with a bit of overclock (i can vouch to this, my old note 2 used to run soul calibur like that with just a 1.8ghz oc and a 700mhz gpu).

So what EXACTLY is wrong with these cpus? Is a matter of optimizations or what?
This is what i tested:

- Changing internal rendering doesnt affect speed the way its supposed to be. The difference is about 2 fps which shows that clearly something is wrong.
- I suspect that even with basic tweaks such disabling buffered rendering, changing internal resolution and such, doesnt help at all with speed. Theres still that 2-maybe-3 fps increase. It is like the emulator runs always in software rendering, or something like that.
- The N7/Note3/LG G2 have all a fullhd panel, with different dpi's, but its 1920x1080 none the less. Using this application: https://play.google.com/store/apps/details?id=com.nomone.resolution_changer is it possible to change DPI and Resolution on the fly choosing between alot of presets, thus effectively decreasing the amount of work from both gpu and cpu. This is what i observed; changing the resolution to the one from Galaxy S3 (which is basically the same, almost, of note 2, althought with a smaller dpi) doesnt help at all in the speed up. Doesnt matter what resolution you use, even 640x480, that doesnt help. PPSSPP still keeps running at absolutely lowest on superior hardware, doesnt make sense right, specially when compared to exynos 4 and mali.
It has been advised to turn off buffered rendering and to keep resolution 1:1; althought it helps a bit, the FPS should skyrocket compared to old phones, but that is not the case. Such tweak helps forgetably the speed by a small, small bit.
Using the resolution changer app linked above in normal android games helps the fps alot, such Dead Trigger 2 (as an example) which means is clearly working).

So to recap, the devices affected to this are:

- Nexus 7 2013
- Nexus 4
- LG G2
- Note 3
- S4 LTE-A
- S4
- Xiaomi m2s
- Xiaomi m3
- Xperia Z
- Xperia Z Ultra
- Xperia Z 1
- Xperia Z Tab
- Galaxy Note 10.1 2014
- Nexus 5 (its confirmed that runs the same HW as LG G2)
- All Motorola MOTO X-based phones from 2013 (X8 moto cpus are based on S4)

Hope this thread serves to gather as much info as we can to possibly solve this problem.
Henrik naturally im available to help if i can.
The device i can run tests on is my Nexus 7 2013 as configured:
- Stock and rooted Rom
- ElementalX 1.8 Kernel, clocked at 1,836mhz on 4cores, and 600mhz gpu

TO USERS or for those interested in contributing to the thread:
- Please if your experience is different, or the total opposite of mine, state your settings, device, rom and kernel, and overclock.
To make things easier, dont post things like "its smooth". By "smooth" and specially compared to Exynos 4 devices, all the tests must be done WITHOUT frameskip. Provide a screenshot where possible.


RE: Current state of Snapdragon-based CPUs in PPSSPP - fivefeet8 - 10-28-2013 02:09 PM

I can report that it's slow on my S4 AT&T phone, with one exception(FF3), but it's always been so and I don't have any baseline to compare it to. One point of comparison can be made to another emulator. Epsxe on Android also seems to have issues with performance on Snapdragon GPU's and the OpenGL video plugin. One of the emulator authors says as much about it as it seems to run slower than Mali GPU's.


RE: Current state of Snapdragon-based CPUs in PPSSPP - KingpinZero - 10-28-2013 05:15 PM

Thank you for your contribute. I hope this gets some attention so Henrik can look in the issue.


RE: Current state of Snapdragon-based CPUs in PPSSPP - Henrik - 10-28-2013 06:40 PM

I am very annoyed too with the poor performance of Snapdragons, I have a Nexus 4 myself and I just can't get it to perform the way I like.

If I knew what bothered the driver I'd fix it.

Later, sometime after 0.9.5, I'm going to write a new OpenGL backend optimized for OpenGL ES 3.0, really utilizing the new features to increase performance. I hope this will solve the problem on Adreno 300+ at least, but obviously there's no way to know now if it will work.


RE: Current state of Snapdragon-based CPUs in PPSSPP - KingpinZero - 10-29-2013 06:58 AM

Thanks for looking into the issue Henrik. I dont know how i can help, but let me know in case. The fact you own a Nexus 4 helps alot actually, probably theres something related to ES3 or Qualcomm drivers itself, because the actual state looks like some sort of software fallback, with broken ES2 drivers.


RE: Current state of Snapdragon-based CPUs in PPSSPP - globe94 - 10-29-2013 08:25 AM

i own a Cherry Mobile Flame(Local brand in Philippines)
it has a
* Snapdragon MSM8225 Dual Core
* Adreno 203 GPU

and with my constant gaming these past few months, i can say that it really slowed down.(But not on all games)
i played Harvest Moon HOLV , its only around 70-80%
while in early 0.9.1 builds, i played it 100% with MT ON
but now, i did all stuff but cant get the perfect speed again.
but on SOCOM, with builds now,slowly becomes smoother and smoother,

i dont know if its because of my weak phone,
or because the ppsspp app is Bigger on memory now, running more codes/commands, consuming much ram than before. etc etc..
or just bug on the app.

but it really slowed down on some of my games.
hope the problem will be found & solved.

i dont know what i can to do help, but if testing games i can surely help .
just tell me what to do, & i will.. Smile


RE: Current state of Snapdragon-based CPUs in PPSSPP - [Unknown] - 10-30-2013 12:50 AM

MT was "nerfed" to make it more compatible. It's slower than it was before though, unfortunately. That said, I didn't realize it was even working on Android and I wouldn't expect that big of a difference.

If you can find which build was last fast and which was first slow, it would help. I know it might be gradual. If it's gradual and you have some time, a spreadsheet of build (v0.9.1-123123-gasdasdas) and performance (e.g. fps/etc.) would help, since I might be able to use that to narrow it down.... but I realize it'd take some time to chart a few dozen builds.

-[Unknown]


RE: Current state of Snapdragon-based CPUs in PPSSPP - globe94 - 10-30-2013 01:12 AM

@[Unknown]
u mean i download and test all builds to find the last FAST PERFORMANCE BUILD and The FIRST SLOW BUILD????


its a bit...... difficult i think??

But okay !
i'll try to test as many as i can !
pls wait..



TESTING NOW.....Smile


RE: Current state of Snapdragon-based CPUs in PPSSPP - denslife16 - 10-30-2013 02:53 AM

im also lg nexus 4 user like henrik, looking forward on the upcoming v0.9.5, ppsspp is the best ever!


RE: Current state of Snapdragon-based CPUs in PPSSPP - globe94 - 10-30-2013 03:53 AM

i really want to play with my snapdragon speed again so i'll try hard to trace that build.

* Game Used
- Harvest Moon HOLV (the only one im using to test because..)
- SOCOM 1(because socom needs 40cpu clock)
- Mind Quiz( needs frameskipping )
- Dynasty warriors 2( also frameskip needed)

*the only game i have now that doesnt need the magic of frameskip & cpu clock is Harvest Moon, so thats the game im testing. ( sorry, i deleted some of my games 2days ago cause i need some SD space) i hope this is enough.

anyways, my initial results

*v0.9.1-238-gcbf3a4a-android.apk
- speed is 98% fps 22/22

*v0.9.1-575-g43c2d53-android.apk (last build with Hundreds value) ( on what my phone loaded in dload page)
- speed is 100% fps 22/22

*v0.9.1-1181-g8c343fa-android.apk(1st build with 1000 value)
- same with 575

*v0.9.1-1233-g3f1b87c-android.apk
- a bit slow speed 97% fps 21/22 (while walking) didnt happen with 575 & 1181

* v0.9.1-1259-geda5f76-android.apk
HARVEST MOON - intro scene speed= some part reaches 100%( but based on movements it doesnt look like 100% i wonder why?)
speed 98% fps 22/22 (98% but that slowdown is not noticeable)
SOCOM1 (Mission 1 only & with cpu clock=0)- speed *mission 1 intro video 91.7% 56/60
in game (character is steady) 20.5% 13/60

*v0.9.1-1275-g9ace2be-android.apk
- crashes all games

* v0.9.1-1302-gf5ee058-android.apk
-still hangs/crashes

v0.9.1-1394-ga95a1a9,
v0.9.1-1419-g27584e1 and
v0.9.1-1436-g85e6c93 looks similar, no slowdown.

*v0.9.1-1661-gf374593-android.apk
-Harvest moon intro 19/30 62.8%
in game(standing charac.) 17/22 73.9%

i'll edit this later with more tested builds.


RE: Current state of Snapdragon-based CPUs in PPSSPP - [Unknown] - 10-30-2013 04:18 AM

I don't mean every one. I would go by halves. If you go by halves and it's one build that did it, you'll find it in like 12 attempts or something. But, looks like you're skipping around which is good.

So it seems like somewhere between v0.9.1-1181-g8c343fa...v0.9.1-1233-g3f1b87c there was the first hit. That's a good start.
https://github.com/hrydgard/ppsspp/compare/v0.9.1-1181-g8c343fa...v0.9.1-1233-g3f1b87c

There's quite a few changes in that range, but it could be:
* beziers (there's an option to enable "low quality")
* PSPPointer changes (can't really avoid these...)
* save/restore GE contexts (that'd be interesting, few games use these...)
* bbox (really unlikely)
* textureChanged (not very likely)

-[Unknown]


RE: Current state of Snapdragon-based CPUs in PPSSPP - globe94 - 10-30-2013 05:23 AM

Note: i do not use other added options after MT was added.
bezier & hacks are turn off.

yes! almost there!
im close to finding the culprit!

its between builds 1302(which crashes) and 1661(massive slowdown)

EDIT: 1375 , harvest moon is at full speed.
then, its between 1375-1661 now.


RE: Current state of Snapdragon-based CPUs in PPSSPP - spajdr - 10-30-2013 07:22 AM

I found some information about lower Krait performance when i bought DosBox Turbo, taken from FAQ

Why is DosBox Turbo running faster on Tegra & Samsung SoC's rather than on Qualcomm Snapdragon S4 (Krait)?

There are two reasons that users see better performance on Nvidia Tegra 3 and Samsung SoC's rather than the Qualcomm Snapdragon S4 SoC:
1. The stock ROM on most Krait devices (ie. Nexus 4 and the 2013 refresh of the Nexus 7) ship with the conservative ondemand governor which has trouble staying in a higher Mhz state when other apps are running, due to the high frequency at which most Krait SoC's ship.
2. The Qualcomm Snapdragon S4 series has poor integer & NEON IPC when running code with low ILP (ie. most emulators). Due to the poor Integer & NEON IPC, most emulators will suffer a performance hit on Snapdragon S4 series SoC's when compared to a standard Cortex A8/A9/A15. (reference: discussion in Qualcomm Developer Forum & latencies seen in compiled code).

[Snapdragon S4 SoC (ie. Nexus 4 & 2013 Nexus 7) Tip]: Significant performance gains can be realized on these devices by simply changing the governor to interactive and killing all running apps in memory before starting DosBox Turbo. Further performance gains be be realized by utilizing the Faux123 custom kernel.

More information here.:
https://sites.google.com/site/dosboxturbo/performance


RE: Current state of Snapdragon-based CPUs in PPSSPP - Henrik - 10-30-2013 08:38 AM

Thanks for the info and link spajdr!

https://plus.google.com/+nialldouglas/posts/YgbUb4mUXP2

This post is interesting, it indicates that we could get somewhat better performance if we emitted THUMB-2 instructions (compressed ARM) instead of plain ARM instructions. THUMB-2 has an insanely complex encoding though so writing the emitters for that won't be fun.. Also not likely to help more than a few % I guess.


RE: Current state of Snapdragon-based CPUs in PPSSPP - vitality19 - 10-30-2013 08:59 AM

@spajdr - thanks for useful info and thanks Henrik for explaining, it turns out that snapdragon's krait is too complex for emulation, and I considered this cpu to be quite powerful, moreover I wanted to buy one Dodgy to think that it can be weaker than A8, thats laughable

I wonder if other newer Krait cpus 200,300,400 have this issue