Build with opengl renderer.

125 views
Skip to first unread message

Serg Tikhvinskiy

unread,
Dec 11, 2014, 7:55:48 AM12/11/14
to renesas-...@googlegroups.com
So I'm newbie here but I have had rena3 for nearly 4 years (last 2 years I used another tab). I've came across this group and as my rena is still alive I decided to give it a try. The build from dropbox worked but there was no sound so I've downloaded everything and have build from scratch. Tuned something (added some strings in board.mk added cortex optimized bionic libc functions and may be something else I'm not sure). So this build works with opengl renderer and this gives the tab wings :)  it's very fluid. But apps load slow,may be that is supposed to be so on 600mhz dual core :) 
But there are some strange things also. When I messed with my other tab which had memory bandwidth problems I came across such an app as tinymembenchmark I've cross compiled it for arm and used it to test my custom kernel for that other tab. So I did with rena. And strabne things came up. On stock gingerbread memory works much faster (~600mb/s with 667mhz clocked cpu) but when I've build bootloader+kernel+android from these sources and with my optimizations I cannot reach even 500mb/s. And the most strange thing is that when the benchmark is running cpu load is 49-50% so it looks like it uses just one core with memcpy and other memory operations. This looks like some misimplementation of smp?
The build runs so smooth I can not imagine how smooth it could have been with proper memory operations. But it's not the kernel to blame I've tried to flash that gingerbread stock kernel and JB actually boots (but without wifi/bt/touchscreen) but I ran my benchmark via adb and got very close results to this kernel. So it's ether bootloader that matters (I doubt this) or Livall tweaked bionic to suit the SOC in their gingerbread builds.
the binary of that benchmark is located here http://dnkn.ru/mem (download to /data/local/tmp for example and chmod 755 then run).

And my opengl renderer enabled build is here https://yadi.sk/d/kgRn8KSjdJeym
This old fella nearly outperformes my quad core 1.6ghz tab on browser fluidness (but very slow on loading apps).

Dmitriy B.

unread,
Dec 11, 2014, 8:03:39 AM12/11/14
to Renesas Emma EV2 Android Open Source Project on behalf of Serg Tikhvinskiy
Please, remember that Rena3's CPU is literally something like r1p0 silicon of Cortex-A9, there were around 20 erratas and some of them where hardcore ones about MMU/caching/aligning issues, so things you are seeing might be just because of that.

Best Regards,
Dmitriy Beykun

--
You received this message because you are subscribed to the Google Groups "Renesas Emma EV2 Android Open Source Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to renesas-emev-o...@googlegroups.com.
To post to this group, send email to renesas-...@googlegroups.com.
Visit this group at http://groups.google.com/group/renesas-emev-osp.
For more options, visit https://groups.google.com/d/optout.

Message has been deleted

Serg Tikhvinskiy

unread,
Dec 11, 2014, 8:38:37 AM12/11/14
to renesas-...@googlegroups.com
Yes that is very possible as far as I remember with all of those chineese firmwares there were some strange lockups during normal use not only in suspend,so they could have not have erratas workaround enabled (or they could have just not existetd yet) and that cuased lockups but with improved performance,so ether extra speed or extra stability.

Actually I'm impressed with this old device performance on jellybean and plan to try to port KitKat as it is supposed to be more optimized for 512mb ram devices.

ffxx68

unread,
Dec 12, 2014, 4:10:35 AM12/12/14
to renesas-...@googlegroups.com
I would not discard bootloader, as it initialize lots of lowlevel registries too.

Serg Tikhvinskiy

unread,
Dec 12, 2014, 11:12:19 AM12/12/14
to renesas-...@googlegroups.com
I will try to flash stock bootloader, may be it will perform in a different way. I've backported zram kernel module , looks like it works OK. I just need this tab to be stable, not to hang as it will be mounted on the wall as a smart home controller. I've found a 2.6.35.7 kernel for some Samsung device with everything ready for KitKat, so kernel wise everything seems to be available. Is there something on serial console when it "hangs"? I have not soldered it yet ,is it helpful to debug that hanging problem ?

ffxx68

unread,
Dec 15, 2014, 4:04:44 AM12/15/14
to renesas-...@googlegroups.com
When does it hang? Is it on boot up, before even completing kernel startup (i.e. nothing shown on screen)?
If so, yes, the only way is to solder the serial debugging and check dmesg.
If you can read the "android" logo on screen and it hangs there, then it's enough to use adb, through USB.
About KitKat, why not going to L, as one's doing the upgrade?
Also, as soon as you want to post something stable let me know, I can grant you write access to our guthub repos.

Dmitriy B.

unread,
Dec 15, 2014, 5:00:47 AM12/15/14
to Renesas Emma EV2 Android Open Source Project on behalf of ffxx68
About KitKat, why not going to L, as one's doing the upgrade?
 
Are you sure that our GPU will handle android 5? AFAIK 4.3+ versions of android want to have 3.0/3.1 GLES.

Serg Tikhvinskiy

unread,
Dec 15, 2014, 8:22:58 AM12/15/14
to renesas-...@googlegroups.com
My unit has not hanged so far, but I read in your readme file that it happenes sometimes in suspend, that is what I asked about, is it showing something helpful on serial console when that hangs do happen.
As for lollipop, I've read it uses data encryption by default which cause performance drop (on thus old device performance drop would be very noticeable). And selinux is implemented in some more strict mode then in kk,and frankly speaking I did not like it (compiled x86 lollipop from source and got a taste of it on my laptop).
And 4.3+ versions work on opengl 2.0 GPU. I'm writing this running 4.4 on mali400 powered device which is ogl2.0.
My current build appears to be stable, using 2 zram blocks (for each core).
What about camera BTW? I've enabled gc0307 kernel module and it loads but camera app crashes with this in dmesg
"Detect sensor I decode=0x99
emxx_camera: stream off: no streamon.
"
But I would not spend much time on the cam as it is awfull :)

Also dhd.ko blob seems to be very unstable in terms of waking up from suspend. It almost always crashes with something like "unbalanced wake disable for IRQ 195" and "unbalanced enable for IRQ 284". But that solves by triggering WiFi switch.

ffxx68

unread,
Dec 16, 2014, 4:13:18 AM12/16/14
to renesas-...@googlegroups.com
Yes, maybe it's an old readme, when I still had these hang issues more frequently. I indeed still notice sometimes (every rarely) the unit can't wake up from suspend, but it's so rare I haven't bothered to debug it... And I also agree some instability in WiFi (dhd.ko) but this one as well is not such a big issue (to me at least), to spend much time about debugging it. I agree with you about camera too: useless to fix.
Wrt to the "2 zram blocks (for each core)", can you give a summary about what that means and what you have changed to enable it? As far as I can read on http://en.wikipedia.org/wiki/Zram, this is about making swapping RAM to disk more efficient, but that should in principle never happen in Android... I don't think Android is designed to swap to disk. When that happens, it means the device is undersized wrt to the running apps... Isn't it? Also, the Dalivik VM garbabe collection shold take care about rmeoving unused segment as soon as some free-RAM lower thresholds are reached. Probably that's another performance tuning point (which I haven't considered yet...).

ffxx68

unread,
Dec 16, 2014, 12:16:34 PM12/16/14
to renesas-...@googlegroups.com
Also, could you calrify what you mean by

 "added cortex optimized bionic libc functions"

and
 
 "opengl renderer enabled build"?

thanks
Fabio


On Thursday, 11 December 2014 13:55:48 UTC+1, Serg Tikhvinskiy wrote:

Serg Tikhvinskiy

unread,
Dec 16, 2014, 1:06:19 PM12/16/14
to renesas-...@googlegroups.com
Zram. Zram kernel module gives the opportunity to "compress ram", not the ram itself, but swap device which is created in ram. So for example we have 40mb zram swap block, system uses all of these. But the data is actually occuping only 1/3 of the swap space as those 40mbs are being compressed on the fly. So there is some extra ram being gained with using it .

"Opengl renderer" is enabled with USE_OPENGL_RENDERER=true in boardconfig.mk it makes the system use GPU for ui composition. In real life it gives smoothness to every aspect of device usage. Browser scrolling, launchers, everything becomes handled by GPU so become more responsive. Give it a try,  you'll have no chance not to see it for yourself.

"Cortex optimized libc" is actually just some of memory management functions in bionic sources which use neon/vfp capabilities.  This gave me 40% performance boost on my other tab  (~700mb/s without those and ~1200 mb/s with those built in bionic). On Rena I got some gain, but not so noticeable.

вторник, 16 декабря 2014 г., 20:16:34 UTC+3 пользователь ffxx68 написал:

ffxx68

unread,
Dec 17, 2014, 3:55:02 AM12/17/14
to renesas-...@googlegroups.com
Indeed I noticed some UI improvement after enabling USE_OPENGL_RENDERER.
I'll continue some testing and publish a new build, asap.
I will try zram too.
Thanks for the tips!

Serg Tikhvinskiy

unread,
Dec 17, 2014, 6:27:20 AM12/17/14
to renesas-...@googlegroups.com
Not only ui but scrolling in browser is nearly perfect and everywhere in the system. But there's some blur I guess and some gradient appeared (as if it's 16bit vs 32bit color).
As for zram, you know I guess this device is kindkinda slow for it. I tried to lower the zram size and device works faster. So it looks like CPU power is not enough to do the processing transparently. On more powerful devices I have not noticed any performance drop, but witnessing it on this one. After all it's just not for multitasking. To low on ram. In fact I've noticed that I was using wrong linaro cortex optimized strings will try to build with the right ones.
Also ice tried my tests with stock kernel and bootloader, got the same low results. So in 2.3 memcpy and other memory functions worked much faster.
Reply all
Reply to author
Forward
0 new messages