GP2X Devs Please Underclock Your Apps


So back on topic, how much extra battery life would this much underclocking provide, you still haven't said what you've done to test this out. If you had some figures you would be more likely to convince people.

No, I don't have any, but I should do it. Too bad this page http://wiki.gp32spain.com/index.php/Pilas only focuses on 200 and 275 MHz.

Someone should use that utility dedicated to testing batteries and test the same batteries at some major frequencies, I guess 25, 50, 100, 200, 240 and 270/275 MHz would be good. Might do it this weekend, but if anyone wants to just compare something like 50 and 200, that'd help us have an idea about what we're talking about.
 
Last edited by a moderator:
A_SN - I assume you have contributed to all the devs that are wasting your batteries for you?

lol, as Anppa just told me, is stopping to waste batteries with unnecessarily high clock speeds a stupid idea because I haven't released a game?

No - my point was that maybe if you had contributed to the devs that write the software, you'd be in a position to demand (and you were very demanding) that they accomodate your needs.

Maybe it was just how you came over in your first post. Maybe you meant to say "it would be really cool if this option was offered".

Try reading this paragraph again and see if you can see what might cause offence...
So here's what I'd like you developpers to do. Take every app you have released on the GP2X, even ports, and look for the lowest CPU frequency you can use for your app, and inside your code, make your app switch the GP2X to that low CPU frequency you deem decent, and release. And while you code please remember to always optimize stuff so that you can run it at an even lower CPU frequency, don't content yourself with a "it runs at 30 FPS at 200 MHz, why bother?" thought.

On top of all that, lots of applications *are* underclocked.

Personally, I think underclocking to save my batteries is that last thing I would want devs to be spending time on.
 
Last edited by a moderator:
Underclocking takes about 20 seconds to set up in your program. I agree with Gruntfuggly, those 20 seconds could be spent elsewhere doing something that is actually useful, underclocking is a waste of time.

(A_SN actually is actually very active on the developer IRC channel).
 
A_SN - I assume you have contributed to all the devs that are wasting your batteries for you?

lol, as Anppa just told me, is stopping to waste batteries with unnecessarily high clock speeds a stupid idea because I haven't released a game?

No - my point was that maybe if you had contributed to the devs that write the software, you'd be in a position to demand (and you were very demanding) that they accomodate your needs.

Maybe it was just how you came over in your first post. Maybe you meant to say "it would be really cool if this option was offered".

Try reading this paragraph again and see if you can see what might cause offence...
So here's what I'd like you developpers to do. Take every app you have released on the GP2X, even ports, and look for the lowest CPU frequency you can use for your app, and inside your code, make your app switch the GP2X to that low CPU frequency you deem decent, and release. And while you code please remember to always optimize stuff so that you can run it at an even lower CPU frequency, don't content yourself with a "it runs at 30 FPS at 200 MHz, why bother?" thought.

On top of all that, lots of applications *are* underclocked.

Personally, I think underclocking to save my batteries is that last thing I would want devs to be spending time on.

lol, "spending time on". that's funny ^^
they'd compile it without setting a clockspeed, manage it externally with the methods said in this thread, and in about a minute they'll have seen it run in all clockspeeds and can determine which is fast enough ^^

and in the program it's probably one, or a few lines in the initialising of the game.

stop making stupid excuses plz...
 
Last edited by a moderator:
Orkie - I can't tell if you are being sarcastic or not (my guess is that you are). It probably does only take 20 seconds to set up, but I would imagine that
Take every app you have released on the GP2X, even ports, and look for the lowest CPU frequency you can use for your app
might take a bit longer...

they'd compile it without setting a clockspeed, manage it externally with the methods said in this thread, and in about a minute they'll have seen it run in all clockspeeds and can determine which is fast enough

Why the fuck should they?
 
Here's my take on it...

Developers should make idle calls when they don't need CPU time instead of running a do-nothing loop, and then the kernel should be modified to clock down (or maybe even up to some limit) to whatever rate is most suitable for the amount of CPU time being consumed.

Of course this should be a configurable behavior so that people can still manually set the speed they want in a script, etc. When the battery gets low, it could even drop the speed down to give you a little more time to save and exit.
 
they'd compile it without setting a clockspeed, manage it externally with the methods said in this thread, and in about a minute they'll have seen it run in all clockspeeds and can determine which is fast enough

Why the fuck should they?
because it would make their app consume less batteries, so it'll please the users more, which is more or less the entire goal of writing a program i think...
there's no obligation (duhhhhhhhhhhhhhhhhhhhhhhhhh), but it's a pretty good suggestion, and one that shouldn't get the resistance, flaming, etc.... it's getting now
 
Last edited by a moderator:
I still say that users should try underclocking programs and see how well they run. And share their findings on low clock speeds. Dev time is better spent on devving. With that been said I will try to test my own apps for lower clok speeds.

Here is a table of minimim clock speeds

Those were compiled resulting from a forum post I made a while ago.
 
Orkie - I can't tell if you are being sarcastic or not (my guess is that you are). It probably does only take 20 seconds to set up, but I would imagine that
Take every app you have released on the GP2X, even ports, and look for the lowest CPU frequency you can use for your app
might take a bit longer...

OMG WTF, is that what you thought I was asking? I wasn't fucking asking for some programmers to go through everybody's code and test and include the underclocking and all that, I was asking developers to do that for their own programs. How long should that take (unless you released a dozen programs?)?

And just a clarification, if not modify the C/C++ code to make it do the overclocking, release your program with a reclocking script, because most people cannot make such a script or couldn't be arsed anyways to test the speed for each program and make a friggin script. I mean basically, as it is now, if you want to save batteries it's "test every single program you use and write your own scripts". I think it's rather your job to do it when you release a program.

Then you don't HAVE to do it, if you want to write some bloated half-baked crapped that drain batteries like there's no tomorrow and release it it's your problem, nobody makes you have to release quality stuff and give users a good experience. I'm not asking devs to clean my car or whatever some fool said earlier.

I still say that users should try underclocking programs and see how well they run. And share their findings on low clock speeds. Dev time is better spent on devving. With that been said I will try to test my own apps for lower clok speeds.

Just what I said about users that dunno how to do or couldn't be arsed to write a script every time. That's up to the dev to do it, I mean what's next you're gonna only release the source of your program and ask users to compile it on their own?

And as Orkie said, what god damn time? You quickly test how low isn't too low, you write a little piece of code or script, and in a few minutes you got it done. I for one spend ten times longer than it'd take for much meaningless things in my programs, and if you're too lazy to write such a script anyways I wonder how you could release anything anywhere near polished.

Actually, my suggestion is an essential part of the polishing process, and it's definitely not some user who should do it.
 
Last edited by a moderator:
because it would make their app consume less batteries, so it'll please the users more, which is more or less the entire goal of writing a program i think...
there's no obligation (duhhhhhhhhhhhhhhhhhhhhhhhhh), but it's a pretty good suggestion, and one that shouldn't get the resistance, flaming, etc.... it's getting now

You know full well why it got the response it got...

Of course it's a good idea, but it's hardly important enough to ask (demand) that devs to go back through their old work and release new versions of everything...
 
Last edited by a moderator:
from just a quick test (till the battery fell out), I got these results:

startup: 0.6-0.7A
sitting in gmenu: 0.4A

gmu playing stuff, screen on, 200mhz: 0.6A
gmu playing stuff, screen off, 200mhz: 0.4A

gmu playing stuff, screen on, 250mhz: 0.6A
gmu playing stuff, screen off, 250mhz: 0.45A

gmu playing stuff, screen on, 100mhz: 0.5A
gmu playing stuff, screen off, 100mhz: 0.3-0.35A

gmu playing stuff, screen on, 50mhz: 0.3A
gmu playing stuff, screen off, 50mhz: 0.2A



video player, "full speed", 0.8A
video player, "normal speed", 0.65A
video player, "save speed", 0.50A


IMO it's quite clear that underclocking really does make a difference, nearly halving the power draw. (needless to say, playing stuff in gmu at speeds under 150 or so results in clippy sound, but for power draw that doesn't matter). The larger power draw from the video app is also probably from the second arm processor running.
 
Surely nobody is really this rude or stupid. If you are... can I suggest you buy some additional batteries, learn to underclock yourself and shut up before you alienate all the great programmers that make this scene what it is.

I can only hope its a piss-take and as such should be moved to the LOL files. Perhaps you can get those sh*t hot Japanese programmers to do this for you... :D

Thanks, I greatly appreciate the insult. Please be offended by considering I insulted your intelligence back. I mean really, my original post wasn't that bad, what's wrong with all you people acting like I just hurt your feelings?

Perhaps I'm being stupid myself and mis-understanding. Isn't it easier to create a table somewhere with minimum clock speeds and allow the user to underclock and that way everybody has the freedom to run at any speed they fancy?

Anyway - just so you are clear, it wasn't what you asked for more the way you asked for it that annoyed people. It came across as you were demanding and arrogant.

Wait a second... you are French. Quelle Horreur!! It all makes sense now... Parisien by any chance?? :D

PS Just joshing - if I was writting the same request on a French web-site my Franglais would offend many more people I'm sure.
 
Last edited by a moderator:
What response are you guys talking about? The complaints from Gruntfuggly and.. well actually it's pretty much Gruntfuggly, or the suggestions to use scripts instead (which is probably the best for programs where it's not suitable to have a varying frequency, compared to, say OldPlay that uses different frequency for playing various file formats)
I think this thread is fine
 
Surely nobody is really this rude or stupid. If you are... can I suggest you buy some additional batteries, learn to underclock yourself and shut up before you alienate all the great programmers that make this scene what it is.

I can only hope its a piss-take and as such should be moved to the LOL files. Perhaps you can get those sh*t hot Japanese programmers to do this for you... :D

Thanks, I greatly appreciate the insult. Please be offended by considering I insulted your intelligence back. I mean really, my original post wasn't that bad, what's wrong with all you people acting like I just hurt your feelings?

Perhaps I'm being stupid myself and mis-understanding. Isn't it easier to create a table somewhere with minimum clock speeds and allow the user to underclock and that way everybody has the freedom to run at any speed they fancy?

Anyway - just so you are clear, it wasn't what you asked for more the way you asked for it that annoyed people. It came across as you were demanding and arrogant.

Wait a second... you are French. Quelle Horreur!! It all makes sense now... Parisien by any chance?? :D

PS Just joshing - if I was writting the same request on a French web-site my Franglais would offend many more people I'm sure.

Haha no, not Parisien, being french is already more than a lot of people can take ;). Anyways, sounds like you didn't read anything posted in the 2nd page, you should check it out.
 
Last edited by a moderator:
What response are you guys talking about? The complaints from Gruntfuggly and.. well actually it's pretty much Gruntfuggly, or the suggestions to use scripts instead (which is probably the best for programs where it's not suitable to have a varying frequency, compared to, say OldPlay that uses different frequency for playing various file formats)
I think this thread is fine

I think I'm probably guilty for turning this thread into something it wasn't intended to be, but my original post was supposed to be fairly tongue in cheek. Racemaniac seems to think I was defending somebody and making excuses. I was just trying to point out there is a polite and reasonable way to ask for something...

At no point did I say it was a stupid thing to ask for, just that it's not the most important thing in the world and the way it was asked for seemed to me like it would make it even less likely to happen...

I definitely wasn't complaining, and I don't think I was the only one who took offence at the original posting. It's not like we're a bunch of loyal paying customers or anything - the GP2X community is pretty unique as far as I can make out, considering we have a console with virtually zero commercial software developed for it - I just think we should treat 'our' devs with a bit more respect. They have disappeared before due to 'crap' posted in these forums...
 
Last edited by a moderator:
A_SN,

I would like (from my view) to apologize for the unprofessional way your "quiry" was responded to. I am a professional developer and would not like someone to think that I just "flame" because of the way "messages" can be interpreted. Typing just does not always express the mood of a message that well.

That aside I would ask the development community why some of this is not currently being done. we are developing code for a hand held battery operated machine. Power conservation should be part of our approach. I am not sure that good power conservation code approaches would negate the need for under-clocking. This does mean that the design for this generally needs to be designed in and that can be a difficult process with code you are just modifying for a different platform.

Maybe what we need is some topics on approaches or code to "wait" for something to do that works well with the GP2X. When there is something to do I want to get it done as fast as I can so the user experience is better. On a battery powered machine I just try to be sure where my code needs to "wait" and try to "wait" using the least power possible.

I am not an expert at this so I am not trying to claim that someone should listen to me but I am trying to get a conversation going where we will not be toasting each others body parts. As always toast if you feel the need I treat those types of messages as noise anyway.
 
What response are you guys talking about? The complaints from Gruntfuggly and.. well actually it's pretty much Gruntfuggly, or the suggestions to use scripts instead (which is probably the best for programs where it's not suitable to have a varying frequency, compared to, say OldPlay that uses different frequency for playing various file formats)
I think this thread is fine

I think I'm probably guilty for turning this thread into something it wasn't intended to be, but my original post was supposed to be fairly tongue in cheek. Racemaniac seems to think I was defending somebody and making excuses. I was just trying to point out there is a polite and reasonable way to ask for something...
ahh, a reasonable person to talk with ^^
sorry if i also jumped the gun a bit, but i don't see what's impolite or unreasonable about his request.
sure, he asks for a lot when asking devs to do it to older progs, but he did it with arguments.

it's asking for a lot (too much even, i agree), but i don't see where it's impolite, it might be unreasonable, but it's a forum here, you're supposed to discuss things, and he seems a reasonable guy, so i think that would've been the best option

i've taken his side because i've seen the forum far to often take someone on very hard for no good reason at all. comment like this to devs always seems to get interpreted in the worst possible way and the flamewar begins :(



in my post about the problem with lots of files, i was dumb enough (assuming i was doing something wrong) to end with asking wether i or the devs were doin something stupid. i even had mods on my back pm'ing me that my bevaviour was bad etc... while i was just wondering why small progs took up so much space, and was asking if devs couldn't do anything about it...

i'd find it great if this forum loosens up a bit to critisism or demands to devs. his end point in making the gp2x experience better is an extremely good point imo. that's one of the things open source tends to miss, giving a good experience to normal users. perhaps for the gp2x audience it's less of an issue, we're probably used to hacking around on our pc's and handhelds, but it's still a good idea....
 
Last edited by a moderator:
I think this is a grand idea!

Developers have much more info when it comes to how much time their apps consume, so they should be the ones doing it. Ideally it should be done on the fly, using the lowest clock speed that lets the app run at correct fps and letting the users specify a max clock-speed.

Pausing a game should spare your batteries, turning off the screen after a while would also be a good idea. (I know there's already a utility for some of this, but it devs can make it kick in faster when paused)

Also a low quality, and thus low cpu consuming, mode just like in the video player would be a nice feature for some apps.

Well, at least I'll try to think about it when deving my apps :) .
 
Back
Top