Software Development Kit for Linux

The Mali OpenGL® ES Software Development Kit is a collection of resources to help you build OpenGL ES 2.0 and the latest OpenGL ES 3.0  applications for Mali GPU based platforms.

The various examples and tutorials are built upon a simple framework that can be easily integrated within your own applications. These samples currently build for fbdev.

What’s New in Version 2.4.4
  • Added Pixel Local Storage sample.
  • Added Compute shader introduction tutorial.
  • Added Occlusion culling sample.
  • Added Particle flow sample.
  • Added Projected Lights sample.
  • Added Fetch depth sample.
  • Added Terrain sample.
What’s New in Version 2.4
  • Added Metaballs sample
  • Added ASTC sample
  • Added Cubemap/Skybox sample
What’s New in Version 2.3
  • Added Particle system sample
  • Added OpenGL ES 2.0 Shadow Map sample
  • Added Fur rendering sample
  • Added Simple Text rendering sample
What’s New in Version 2.2
  • 64-bit Host platform support
  • Updated OpenGL ES Emulator to v1.2.0
What’s New in Version 2.1
  • New samples: Occlusion Queries, Shadow Mapping and Min-Max blending
  • Added development on Linux support
  • Updated OpenGL ES 3.0 Emulator to version 1.1 (Khronos Conformant)
  • Documentation improvements


  • Samples & Tutorials
    Numerous samples from the basic set-up to more complex examples demonstrating shader effects
    New samples demonstrating features of OpenGL ES 3.0
  • Visual Studio Projects
    Project files for all samples supplied for Visual Studio. Make files also provided for command line building
  • Simple Framework
    A light weight framework with common math functions, text displaying & timing to see your results quickly



EGLConfig Listing
How to select the correct EGLConfig from the provided list

Empty template that you can use to start developing a new application.The code is structured to contain everything that is required to compile and run, but nothing is rendered

Simple Triangle
How to draw a simple coloured triangle on the screen using a programmable shader

Spinning Cube
This displays a spinning cube on the screen.The example uses matrix functions, renders fonts, and writes the FPS value to the terminal

This shows how to select anti-aliasing levels and the effect of different levels of anti-aliasing. 4x Anti-Aliasing only reduces performance by 2% on Mali GPU but has a huge visual impact when enabled

ETC Texture Compression with Alpha Channels
This example shows how to handle alpha channel compression within the Ericsson Texture Compression ETCv1 format as standardized by the Khronos group

ETC Textures with Mipmaps
This example shows how to load and display ETC format textures with Mipmaps

EGL Preserve
Color buffer preservation example

This example shows the render-to-texture feature of OpenGL ES 2.0. A colored spinning cube is rendered to a frame buffer, which is then attached as a texture on the faces of another spinning cube

This example shows how to implement a classic demo effect, rotating and zooming a texture. It shows how the work can actually be moved up from the fragment shader to the vertex shader and CPU to speed up the effect

This shows how to use transform feedback to do calculations on the GPU using shaders. Movement calculations are done on the GPU. Data is not transferred back to the CPU, thus reducing memory transfers

This shows how to use instancing in a vertex shader to render multiple copies of the same geometry with different properties. A single copy of the geometry is uploaded to the GPU to reduce memory transfers

Instanced Tesselation
This shows how to use instancing to create high complexity shapes from low-complexity geometry data. Patch data is combined with control points that are uploaded into buffers to create a complex model of a torus

ETC2 Texture Demo
This shows how to use each of the ten ETC2 texture compression formats that are supported in OpenGL ES 3.0

Integer Logic
This shows how to use integer formats in shaders. The sample demonstrates Rule 30 Cellular Automata


ASTC Textures Demo

This sample presents usage of ASTC compressed textures in OpenGL ES 3.0.



This sample uses occlusion queries to determine whether or not complex geometry is visible before spending time to render it.


Min Max blending uses the new blending type in OpenGL ES 3.0 to render a volumetric data set.

Skybox OpenGL ES 3.0

Skybox presents an example usage of cube map texture in OpenGL ES 3.0.

Shadow Mapping

Shadow mapping shows how to do simple shadow effects more easily using OpenGL ES 3.0 features.


OpenGL ES SDK for Linux on ARM

Documentation included with installed package

Related Documentation




Please submit your questions and issues to the Mali Developer Forums