hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.06k stars 2.15k forks source link

sustained performance mode [android] #9738

Closed brujo5 closed 7 years ago

brujo5 commented 7 years ago

New android (N+) has an option specifically for this. It's called the "sustained performance mode". It is designed to allow apps to opt into a mode that disables any unsustainable boost clocks. This is the only answer to thermal throttling (outside of hardware mods - and attaching a fan and heatsink may affect your phone's portability Smile

But I believe it's optional for vendors to implement (though it's part of the VR "daydream" stuff so some kind of implementation may be required for that certification) - and even then it's up to the vendors to decide just what is "sustainable" performance.

I had a go at setting it here: https://github.com/JonnyH/dolphin/commit/283ef6da68fd1d79dcd6c396e96984bfc073c454

is recommend enabling that by default, as I don't see any use case for an emulator that slows down after 60 seconds...)

Here's a video https://youtu.be/fuIMazC42aM comparison without/with sustained mode (sustained mode starts 1:30m) Looks good as an optional feature /hacks?. Additionally it'll be great to include VR mode to, it should get +200MHz boost

Sustained performance mode: All CPUs are capped to ~1.2GHz GPU frequency is capped to 315MHz

VR mode: All CPUs are locked to ~1.44GHz GPU frequency is locked to 510MHz GPU BUS min_freq is raised to 790MHz

it work for dolphin emulator so it work for ppsspp to.

thanks to @JonnyH and user zxcvbad from dolphin forum.

unknownbrackets commented 7 years ago

I may try this when I get a new phone that supports this feature (Nexus 5 didn't get N.)

Agreed that it makes sense and will likely lead to more predictable performance with less thermal issues. Inevitably, I think some people may complain that they get lower FPS sometimes with it, though...

There's an argument to be made for a game that say, mostly is low-key gameplay (maybe a tactics rpg)... but sometimes has rendered cutscenes that take more juice. But I'm not sure any such examples actually exist. Usually it is very brief bursts of special effects, and in that case there's not enough time to spin up I'd guess.

-[Unknown]

hrydgard commented 7 years ago

Ah yes, I forgot about this. This definitely makes sense as an option, probably enabled by default, yes. The only issue is that it will be yet another option hard to name and explain, but should be worth it.

I'm gonna add it soon.

unknownbrackets commented 7 years ago

I wonder if it's worth trying VR high-performance mode (supposedly reduces latency): https://www.reddit.com/r/GoogleCardboard/comments/518zj2/daydream_software_vrmode_hardware_high_performance/

At least during Cardboard (since it also affects notification rendering), though not sure how often people use that anyway... but it might improve performance too.

-[Unknown]

hrydgard commented 7 years ago

Implementation underway in #9901.

blackman91 commented 6 years ago

Could this be made a toggable option like in RetroArch? It works slower for some and faster for others.

hrydgard commented 6 years ago

@blackman91 It already is, only visible where available though.