![]() |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
that the 2% below is even below the error margin. So I am very doubtful there is any improvement at all :-) And about the memcpy: I am pretty sure you will bump into synchronization issues between two event loops (one of phoneme and one of the Qt4 frontend). The phoneME backend calls a method in the Qt4 frontend to say it is time to paint the buffer. The Qt4 front-end will emit an asynchronous signal. By the time this signal is processed the original buffer has changed, resulting in flickering and painting of intermediate frames if you use the original buffer. But feel free to experiment, you never know ... :-) Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
JBenchmark:
http://davy.preuveneers.be/phoneme/p...mo/jbenchmark/ Note: only JBenchmark and JBenchmark2 work. The others require more JSR support Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
OK, second optimization pass (memcpy is gone), JBenchmark2 result(same conditions) landscape - 972 portrait - 804 going to try your benchmarks, will post theresults here. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
so... no flickering ;) EDIT: But anyway I will add some synchronization, just in case, it could lower the results a bit, but will make sure there will be no flicker under any conditions EDIT2: with DavyP's benchmarks: JBenchmark, landscape only (seems does not like portrait) - 5845 JBenchmark2: landscape - 978 portrait - 906 |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Another remark:
It is possible that the above results are not accurate for another reason. The performance results are measured based on what happens in the event loop of phoneME. This event loop triggers in the Qt4 front-end app a signal emit. So most of what you measure is computation related, not screen IO related. The actual repainting is done in the event-loop of the Qt4 front-end, and it is possible that in this event-loop multiple repaint events are coalesced into a single one (i.e. a single screen update). So the actual painting time in the Qt4 event loop is not included in the benchmark, and the actual screen updates could be lower than what you measure. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
On the other hand both threads are CPU bound, so when there is less overhead (because there is no memcpy for every screen buffer), the computational thread is given more CPU shares to do its job, so I believe the benchmark results are pretty corect. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Anyway, I don't want to discourage you in any way. The only point I wanted to make is that I am always careful with interpreting benchmarks, especially if I don't know what they are measuring :-), but any frame rate improvement you can squeeze out of it would be most welcome. Cheers, Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
We have whatever phone parts you can imagine on sell in China. I had fun changing my n900 screen once. And digitizer plus frame like this (titled"original n900 outer screen", price is 85CNY, roughly 8 euro) can be easily bought and mostly reliable (I can't guarantee they are 100% original though). If you have friends traveling in china, I can send them the part. Sending by mail is also possible but might be slow and a bit expensive. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
@DavyP
OK, buffer synchronization added, the results(same conditions as in previous runs): JBenchmark - 3400 :o JBenchmark2: landscape - 1002 portrait - 920 After all there WERE multiple repaint events coalesced into a single one for JBenchmark :) , anyway, everything is fine now. What I did not expect is higher result for JBenchmark2 :confused: Later today I will try to upload cvm code on gitorious, so you can look into it and run the benchmarks on your own if you wish. Just have in mind that my libcvm is compiled with -mvfp, -mcortex-a8 and export CVM_ARM_HAS_WMMX=true, so your result might be a little bit lower because of missing those optimizations . I suspect my cvm won't work correctly on Harmattan (as I removed pixmap rotation), but that could be easily fixed by using appropriate #ifdefs I wonder if using QML or GLES will speed rendering. But as for now a speedup of 16% for landscape and 21% for portrait seems enough. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Unrelated to the technical discussion but relevant for Opera Mini users.. I'm curious to see if others are having the same problem.
As of last night Opera Mini v6.5 stopped downloading pages. Network test showed I had a working connection on WiFi or 2G. I had a look around for other versions to try, found the official OM v4.4 - same issue since it is a new browser. I tried downloading the Handler versions so I could try different servers or direct to the OM4 servers instead - still won't work since it detects the version of Mini you are running. Only working versions at the moment are v4.2, and V5 (which I am using for the moment). EDIT: V6 is working |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
/scratchbox/compilers/cs2007q3-glibc2.5-arm7/bin/arm-none-linux-gnueabi-gcc does not like the -mvfp -mcortex-a8 command line options. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
1 Attachment(s)
Quote:
Going to upload cvm sources on gitorious. EDIT: cvm sources here |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Thanks for your work. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
have a shot at figuring out which change broke portrait mode for Opera Mini. Here you can find some old builds: http://davy.preuveneers.be/phoneme/public/maemo/deb/ Also, since installation settings of Opera Mini remain after reinstalling a different deb, it might be a good idea to clean the /opt/phoneme directory. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
I tested it. The march 7 release had good Opera Mini orientation, but the march 8 had not.
I check the march 7 release. Sound was good, but didn't find the location.jad to check the GPS. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Just to be sure: you did install the MeeGo builds and not the Maemo builds right? The reason why I ask is because I checked the source of 2 backups of March 5 and March 11, and I added a.o. a rotation feature: #ifdef Q_WS_MAEMO_5 setAttribute(Qt::WA_Maemo5AutoOrientation, true); setAttribute(Qt::WA_Maemo5NonComposited); #endif However, due to the ifdef macro, this code is excluded for the MeeGo builds (presuming you did not install the Maemo build on your MeeGo device). Another change is the fact I added multimedia and location features that rely on the Qt Mobility libraries. So I may have to produce a few test builds to really identify which change caused the portrait mode issue. Davy |
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Whenever i chose http as proxy server on opera mini 6.5 it doesn't work.why
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
I can't run Nimbuzz , the app doesn't open when I use run MIDlet , it opens a white screen then close in a half of second . Same on N900
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
http://davy.preuveneers.be/phoneme/p...aemo/deb/test/ These do not match with the ones you tested earlier as I recompiled them again. However, this time I made sure I have the matching build configuration files and sources, which should help me to hopefully find the cause of the orientation problem. Thanks, Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Hi DavyP,
Are you considering to optify (move the stuff out of rootfs) the application?. Actually 4 Mbs is way too much and I had to uninstall it to be able to update to latest CSSU. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
it has already optified, try latest build.
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
I hoped that will help you. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
1 Attachment(s)
I want to play the game "Di tim trieu phu" (Milionaire), but could not. I can not help. Thank's
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
The code changes between the 6th and the 7th were not that significant, except for the fact that I changed some command line parameters, i.e. "portrait" and "noportrait" became "rotate" and "norotate" respectively. If you used "-portrait" in some startup scripts, then this may explain this change in behavior. I changed the naming, because if you enabled the old portrait option and if your display was already in portrait mode, then the midlet would be shown in landscape mode rather than portrait mode. I created a new build in which I add the old command line parameters again, and mapped them on the new ones (portrait -> rotate, and noportrait -> norotate). I uploaded a new test build at http://davy.preuveneers.be/phoneme/p...aemo/deb/test/ You can also check the default rotate/portrait behavior in the MIDlet Settings application. Cheers, Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
@DavyP - did you look at cvm code I pushed on gitorious and my build scripts?
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
I noticed that you removed the static buffer in which I copied all the pixels from the original framebuffer pointer when phoneME tells me to draw the buffer. My code relied on this buffer when I emited a Qt4 signal to draw the buffer. You pass along the original pointer directly to the Qt4 front-end. Using the original pointer is a bit dangerous. By the time the refresh signal gets processed and the buffer gets painted, the contents and the size of the original framebuffer pointer may have changed, causing bad repaints or even segmentation faults. This has to do with the inner workings of phoneME, and the asynchronous handling of Qt4 signals. Before, I actually implemented it more or less the way you did it (without the static buffer), and I got segmentation crashes when I was playing some animation (continuous repaints) while changing the display size (going full screen). I will first do some testing to see whether your code suffers from the same problem before integrating your changes in my latest code. Cheers, Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
here: https://gitorious.org/cvm-qt/cvm/blo...in.cpp#line139 and here: https://gitorious.org/cvm-qt/cvm/blo...er.cpp#line162 That way when a new buffer needs to be painted, we don't return control to PhoneME until the old one is still painted by Qt, preventing PhoneME from using it ;). Sure, this synchronization could be implemented without the overhead of using QMap, but as POC it should be good enough. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Also, I wonder if you could speed things up by waiting a bit longer than usleep(1), i.e. 1 microsecond. I don't know how fine-grained the N900's default timer resolution is, but if it would be that accurate, you are spending a lot of CPU with busy waiting. I think somewhere between 1 to 10 milliseconds (or 1000 to 10000 microseconds) might improves things as you sleep longer per iteration, leaving more time for the other threads to complete the repainting. I have not tested this though, as you would have to count how often you execute the cycle in a benchmark setup (where you try to paint as fast as possible). Cheers, Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Quote:
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
1 Attachment(s)
Happy easter, sorry for the ******!
Anyway, Davy Nimbuzz doesnt work. It's not fully supported by your JVM becouse it needs to be maybe remapped?! Anyway... I have a problem with the Facebook app. The new facebook app has to store some data, but this version doesnt, becouse of the vm maybe, it doesnt save username and password. In the error log, there's not nothing about this kind of problem,this is the Facebook official APP, can you make something to fix this error? i add the Jar file down here... Thx 1000 Cristian |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
All times are GMT. The time now is 12:14. |
vBulletin® Version 3.8.8