Tuesday, January 1, 2013

WebGL and HTML5 with Firefox 19.a1 on non-Xorg TI platforms


In an earlier post (http://tigraphics.blogspot.in/2012/04/sgx-hw-accelerated-webgl-with-firefox14.html), Firefox 14 porting on DM3730 was discussed. In this post, the changes in Firefox 19 are discussed, and
performance benchmarked. Firefox 19 brings in changes in rendering architecture, and a new widget class "LinuxGL" is introduced by romaxa to cater to plain Framebuffer ports. Gonk is the name of the port given to the Android port of B2G. In this post, only the plain-linux Framebuffer Linux version is considered.

Getting the binaries

Get the filesystem and boot images from:

https://gforge.ti.com/gf/download/docmanfileversion/301/6353/Browser-21-Dec.tar.gz

The filesystem contains TI AM335x linux PSP kernel, and TI SGX framebuffer drivers.

Get the b2g linuxgl port from below, and extract it into the target filesystem.

https://gforge.ti.com/gf/download/docmanfileversion/302/6357/b2g-19.0a1.en-US.linux-gnueabi-arm.tar.gz

The binary b2g application is to be executed with the below command:

MOZ_HOMESCREEN= ./b2g

Patchset:


Patches for the AM335x port are maintained in github in below link. Patches relate to fullscreen rendering (As there is no window), and Accessibility availability, and display of cursor onscreen.

https://github.com/prabindh/mozilla-embedded

Relevant Bugzilla bugs are filed at,

https://bugzilla.mozilla.org/show_bug.cgi?id=731498
https://bugzilla.mozilla.org/show_bug.cgi?id=823985


Videos  /screenshots on AM335x HW:

http://www.youtube.com/user/videos4tigraphics


Performance:

Firefox 19 gives 381 on HTML5test.com, compared to more than 420 on Chrome. Primary contributor is lack of Video format support (Firefox only supports Theora). WebGL demos and CSS/ Canvas demos have been tested. The code still uses glTexSubImage2d, and performance can be improved by optimising some of the texture upload paths.

1 comment:

  1. Hi Prabindh,

    Good stuff!

    I think it would be really cool to run Firefox-OS on small embedded devices such as the AM335x - it could serve an interesting application framework for any type of application, in particular non-phone applications.

    Does one still have to apply all of your patches or are some of them pushed upstream?

    /Martin

    ReplyDelete