Notices


Reply
Thread Tools
Posts: 3,074 | Thanked: 12,964 times | Joined on Mar 2010 @ Sofia,Bulgaria
#471
Originally Posted by DavyP View Post
Nice to hear you have a working base MIDP stack. The errors you get with JSR 75 seem to be related to the abstractions for running midlets on a CDC stack rather than a CLDC stack.

I would suggest to leave out JSR 75 support for the time being. I will try to address this issue when I add instructions for including JSR 179 (Location API) support. I still need to clean up this part.

Davy
Well, the reason why I am trying to have libsvm.so build with the same functionality as what is distributed by you in .deb, is because I want to try to speedup/optimize the whole thing a bit. An example - in your early builds cvm memory allocation with Opera was about 12% (as shown in top) while in later it is 20% and more. Also Opera scrolling was silk smooth in those earlier builds, while there is a lot of stutter in later. Your builds does not use arm7l and SGX features, which I am familiar with. What I saw in cvm Qt sources is a memory inefficiency I am sure I can get rid of (framebuffer is memcpy'ed to a new buffer, which is then used for QImage, which is then used for QPixmap, and that QPixmap is rotated 270 deg when in portrait). And so on, and so on. But I need a working build tree, to be able to play with different options so at the end of a day a simple benchmark could prove is it faster or slower.

Re location API - I don't think using Qt mobility is the best solution for n900, Qt is a memory hungry animal. There are better solutions AFAIK:
http://wiki.maemo.org/Documentation/...ng_liblocation

I think I can help a lot on that side, we can just agree on the interface you need, and I will implement it in a .so file, so you won't need scratchbox or anything to use native Maemo5 GPS support.

The same is with multimedia support, but lets leave that for now.

I would really appreciate if you could give me some hints on how to workaround missing parts that prevent me from having the fully functional libsvm.so build (to the point your build is functional, of course)
 

The Following 6 Users Say Thank You to freemangordon For This Useful Post:
Posts: 3,074 | Thanked: 12,964 times | Joined on Mar 2010 @ Sofia,Bulgaria
#472
Originally Posted by DavyP View Post
Yeah, thanks for testing :-). Having a N900 has been quite helpful for me for testing purposes as well.

I actually had some fun disassembling the device. I bought a new digitizer to replace the scratched screen at Tmart.com for 8 EUR, but unfortunately it is missing the metal frame at the back with the 6 screw holes and I cannot seem to separate the metal frame from the original one. Should anyone have some tips where to buy this instead, they are most welcome :-).
Hmm, better PM vi_, I think he can help.

Regarding your problem: I presume you are talking about 3G connections? This is not trivial because there are different ways of network connectivity (WiFi, 3G, USB). On Windows Mobile, there is something called ConnectionManager to take care of this. I have no idea if Maemo has APIs to do just that.

Davy
Yes, it is called ICD:
http://wiki.maemo.org/Documentation/...o_Connectivity
 

The Following 2 Users Say Thank You to freemangordon For This Useful Post:
Posts: 19 | Thanked: 47 times | Joined on Nov 2010
#473
Originally Posted by DavyP View Post
See what happens if you add "-Duser.timezone=GMT+2:00" to the
cvm command line parameters.

In Android, the front-end application (running in Dalvik VM) takes
the current timezone offset (in msec) constructs the above
GMT based timezone, and passes that along when calling cvm.
This means I have to do something similar in Qt4.

Davy
Yep, that fixes it :-)
 
Posts: 306 | Thanked: 603 times | Joined on Jan 2012 @ Belgium
#474
Originally Posted by freemangordon View Post
Well, the reason why I am trying to have libsvm.so build with the same functionality as what is distributed by you in .deb, is because I want to try to speedup/optimize the whole thing a bit. An example - in your early builds cvm memory allocation with Opera was about 12% (as shown in top) while in later it is 20% and more. Also Opera scrolling was silk smooth in those earlier builds, while there is a lot of stutter in later. Your builds does not use arm7l and SGX features, which I am familiar with. What I saw in cvm Qt sources is a memory inefficiency I am sure I can get rid of (framebuffer is memcpy'ed to a new buffer, which is then used for QImage, which is then used for QPixmap, and that QPixmap is rotated 270 deg when in portrait). And so on, and so on. But I need a working build tree, to be able to play with different options so at the end of a day a simple benchmark could prove is it faster or slower.

Re location API - I don't think using Qt mobility is the best solution for n900, Qt is a memory hungry animal. There are better solutions AFAIK:
http://wiki.maemo.org/Documentation/...ng_liblocation

I think I can help a lot on that side, we can just agree on the interface you need, and I will implement it in a .so file, so you won't need scratchbox or anything to use native Maemo5 GPS support.

The same is with multimedia support, but lets leave that for now.

I would really appreciate if you could give me some hints on how to workaround missing parts that prevent me from having the fully functional libsvm.so build (to the point your build is functional, of course)
Obviously, your expertise to improve this build would be much appreciated. Give me some to sort things out. I am doing my best with the limited spare time I have.

I actually used liblocation before to support GPS functionality, but
since this library was not available on MeeGo, but Qt Mobility was on Maemo, I chose that one for both.

Davy
 

The Following 5 Users Say Thank You to DavyP For This Useful Post:
Posts: 306 | Thanked: 603 times | Joined on Jan 2012 @ Belgium
#475
Originally Posted by DavyP View Post
Obviously, your expertise to improve this build would be much appreciated. Give me some to sort things out. I am doing my best with the limited spare time I have.

I actually used liblocation before to support GPS functionality, but
since this library was not available on MeeGo, but Qt Mobility was on Maemo, I chose that one for both.

Davy
I added a couple of more patches (and one that contains all
modifications) to fix the build issues with JSR75 as well as addon
packages for JSR179 and JSR135.

The build you can produce with these updates should be the
same as my own builds.

Davy
 

The Following 4 Users Say Thank You to DavyP For This Useful Post:
Posts: 306 | Thanked: 603 times | Joined on Jan 2012 @ Belgium
#476
Originally Posted by freemangordon View Post
What I saw in cvm Qt sources is a memory inefficiency I am sure I can get rid of (framebuffer is memcpy'ed to a new buffer, which is then used for QImage, which is then used for QPixmap, and that QPixmap is rotated 270 deg when in portrait). And so on, and so on. But I need a working build tree, to be able to play with different options so at the end of a day a simple benchmark could prove is it faster or slower.
Note that while this is true, there is no copying of the framebuffer going on for QImage and QPixmap. I need the QPixmap structure to render text using the Qt text drawing routing rather than the built-in monospace fixed bitmap font of phoneme. There might be some overhead, but I am not sure how much. You can always try the JBenchmark and JBenchmark2 midlets which I used for comparison.

The rotation will cause some overhead I am sure. It is the quickest fix for the N9 as I have not been able to properly support rotation (as I would have to use QML for that).

Davy

Last edited by DavyP; 2012-03-28 at 22:21.
 

The Following 4 Users Say Thank You to DavyP For This Useful Post:
Posts: 309 | Thanked: 456 times | Joined on Jan 2010
#477
If you change your Internet Connection settings to Always ask, and try to open a MicroB browser window you will get prompted which connection or APN to use (WiFi, 3G etc)- getting the same functionality available in PhoneME would be great!

I have started putting Opera Mini through its paces by opening multiple tabs.. this isn't something I do all the time since the back/forward buttons are lightening fast compared to other browsers.
After 4 tabs are open processor load hits maximum and display goes jerky, closing them makes no difference so i just close the browser and open another copy and resume from where I left off in the History.

Like I said I don't use tabbed browsing often, but I thought I'd let you know where performance is getting hit.

I do find I am using Opera Mini more than MicroB since I am now without a car and use 2G for bus journeys due to patchy 3G cover, so thank you again for your efforts in bringing PhoneMe to this platform.. also if Freemangordon and other members of the community are willing to help then things are looking good
 
Posts: 306 | Thanked: 603 times | Joined on Jan 2012 @ Belgium
#478
Originally Posted by [DarkGUNMAN] View Post
If you change your Internet Connection settings to Always ask, and try to open a MicroB browser window you will get prompted which connection or APN to use (WiFi, 3G etc)- getting the same functionality available in PhoneME would be great!

I have started putting Opera Mini through its paces by opening multiple tabs.. this isn't something I do all the time since the back/forward buttons are lightening fast compared to other browsers.
After 4 tabs are open processor load hits maximum and display goes jerky, closing them makes no difference so i just close the browser and open another copy and resume from where I left off in the History.

Like I said I don't use tabbed browsing often, but I thought I'd let you know where performance is getting hit.

I do find I am using Opera Mini more than MicroB since I am now without a car and use 2G for bus journeys due to patchy 3G cover, so thank you again for your efforts in bringing PhoneMe to this platform.. also if Freemangordon and other members of the community are willing to help then things are looking good
This could be a memory related problem. By default I start midlets
with a max Java heapspace of 12MB. Maybe Opera is using a lot
to store and cache all its content, and increasing this limit a bit
would help to open up more tabs.

Cheers,
Davy
 
Posts: 3,074 | Thanked: 12,964 times | Joined on Mar 2010 @ Sofia,Bulgaria
#479
@DavyP - thanks for the last patches, now opera runs. In short - everything is fine

I've played a little bit with cvm code and the result so far:

JBenchmark2, no overclock, charger connected, using max score from several runs:

landscape:
DavyP cvm - 862
freemangordon cvm - 874

portrait:
DavyP cvm - 760
freemangordon cvm - 774

not and impressive speedup (only about 2%) , but yet

Next thing I will do is to try to get rid of that memcpy(by passing cvm allocated buffer as screen buffer to libcvm), it should give us additional performance boost.

Again, thanks a lot for making this port to maemo and sharing your experience with us.

EDIT:
any chance to PM me a link to download JBenchmark, google finds a site when a registration is needed, but I don't want my inbox full with spam.
 

The Following 3 Users Say Thank You to freemangordon For This Useful Post:
Estel's Avatar
Posts: 5,028 | Thanked: 8,613 times | Joined on Mar 2011
#480
After first batch of optimization, maybe it will be time for extras-devel?
__________________
N900's aluminum backcover / body replacement
-
N900's HDMI-Out
-
Camera cover MOD
-
Measure battery's real capacity on-device
-
TrueCrypt 7.1 | ereswap | bnf
-
Hardware's mods research is costly. To support my work, please consider donating. Thank You!
 
Reply


 
Forum Jump


All times are GMT. The time now is 05:49.