Table of Contents
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
ODROID-X2
ODROID-U2
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)
- 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