===== Preface =====
* This page will guide you to get support of Mali X11 3D acceleration.
* You'll be able to test all the aspects of a Embedded System OpenGL|ES implementation.
===== Pre-requisite =====
===== Ubuntu Version =====
* To get the Mali support working you'll need Ubuntu 9-Feb image and upwards.
* Check below the Download link for your board.
==== ODROID-X ====
* http://forum.odroid.com/viewtopic.php?f=22&t=28
==== ODROID-X2 ====
* http://forum.odroid.com/viewtopic.php?f=15&t=27
==== ODROID-U2 ====
* http://forum.odroid.com/viewtopic.php?f=8&t=12
===== Development Libs =====
* All the needed development files can be installed with the command below:
* sudo apt-get install libjpeg-dev libpng12-dev libx11-dev libglu1-mesa-dev subversion build-essential autoconf automake make libtool xorg-dev xutils-dev libdrm-dev libdri2-1 libdri2-dev git libglew1.6 libglew1.6-dev
===== Speed test : Mesa Software rendering vs Mali400 Hardware rendering =====
* Before installing or doing anything on your stock image. I welcome you to test the difference between software and hardware.
* Let's start Mali 3D driven glmark2-es2.
* Open a terminal (Ctrl-Alt-t)
* Install : sudo apt-get install glmark2-es2
* Run: glmark2-es2
=======================================================
glmark2 2012.08
=======================================================
OpenGL Information
GL_VENDOR: ARM
GL_RENDERER: Mali-400 MP
GL_VERSION: OpenGL ES 2.0
=======================================================
.....
.....
=======================================================
glmark2 Score: 70
=======================================================
* Let's start Mesa Software driven glmark2.
* Open a terminal (Ctrl-Alt-t)
* Install : sudo apt-get install glmark2
* Run: glmark2
=======================================================
glmark2 2012.08
=======================================================
OpenGL Information
GL_VENDOR: Mesa Project
GL_RENDERER: Software Rasterizer
GL_VERSION: 2.1 Mesa 8.0.4
=======================================================
.....
.....
=======================================================
glmark2 Score: 2
=======================================================
* Mali 3D accelerator is roughly 35 times faster!
This is the screen shot of glmark2.
[attachment:glmark.png]
* 3D rendering performance is significantly affected by desktop of Linux. These are the score of glmark2-es2.
* Unity : 70 pts
* xfce : 110 pts
* lxde : 140 pts
* You can download the full source code of glmark-es2, if you want.
apt-get source glmark2-es
===== Mali MP400-4 Specs =====
The Mali MP400 GPU on the your ODROID (X/X2/U2/U) board has:
* 256KiB of L2 Cache
* 4 GPU Cores (Known as PP)
* Can Support OpenGL ES 1.1 and OpenGL ES 2.0
* Full compliance with Khronos OpenGL ES 1.1/2.0 API
* FSAA (Full Scene Anti Aliasing)
* High Working frequency (440Mhz for ODROID-X/U and 533Mhz for ODROID-X2/U2)
* Overclock Capabilities
* 4xAA Multi-sampling with almost no performance drop
* 16xAA outperforming all implementations of comparable quality
The kernel source code is fully GPL open source.
User land X11 3D libaries are IP of ARM and those are closed source.
===== Building Mesa Demos from Source =====
- Make sure you have passed the dependencies and Mali drivers without issues.
- Download mesa-demos sources
git clone --depth 1 git://anongit.freedesktop.org/mesa/demos
- Build it using:
./autogen.sh
make
- Under the src folder, you'll find a lot of examples including the folder opengles2, with es2gears_x11, s2tri and es2_info. Also you'll find alot of OpenGL and Software Rasterizer sinde.
===== OpenGL ES Book Samples =====
- Make sure you have passed the dependencies and Mali drivers without issues.
- Download sources using:
* svn checkout http://opengles-book-samples.googlecode.com/svn/trunk/ opengles-book-samples-read-only
- Build using:
$cd opengles-book-samples-read-only/LinuxX11
$make
- Check the Chapter_* folders, You'll find the built in programs as well their sources
* You can find more information of this book as well it on the References part of this page
===== Other OpenGL ES Applications =====
There are other OpenGL ES application that can be tried on the platform.
$apt-cache search "OpenGL ES"
The command above will show you few application written for OpenGL ES
A good testing application will be glmark2-es2. Install it using:
$apt-get install glmark2-es2
===== For Developers =====
* For developers compiling their own application above is listed the CFLAGS and Linker Flags to use Mali:
- CFLAGS: -I/usr/include/EGL -I/usr/include/GLES -I/usr/include/GLES2 -I/usr/include/KHR
- Linker: -lEGL -lGLES -LGLES2
===== Known Issues =====
* Unity3D Known to be buggy on Standard OpenGL ES. A fix waited.
* Compiz wraps OpenGL content into OpenGL ES causing heavy instabilities as well frame rate dropping.
* XBMC, the present version of XBMC inside Linaro's repo, is old and doesn't support the Exynos MFC, so its software decoding everything. Its known that a team of developers is fixing XBMC on Linux to build again over X11 GLES. This wiki will be update as soon as we heard from them.
===== References =====
* Mali Developer SDK: http://malideveloper.arm.com/develop-for-mali/sdks/opengl-es-sdk-for-linux/
* OpenGL ES Book: http://www.opengles-book.com/
* Khronos OpenGL ES API: http://www.khronos.org/registry/gles/
* ARM Mali 400 MP: http://www.arm.com/products/multimedia/mali-graphics-hardware/mali-400-mp.php