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

* 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.

* 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:

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