Mali OpenGL ES SDK for Linux

Mali OpenGL ES SDK for Android

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




  • Samples & Tutorials Numerous samples from the basic set-up to more complex examples demonstrating shader effects. Samples demonstrating features of OpenGL ES 2.0 and OpenGL ES 3.x.
  • 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.


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

A backlog of all older version features is available here

OpenGL ES 2.0 and Open GL ES 3.x SDK for Android

HTML Documentation included with installer package


Please submit your questions and issues to the Mali Developer Forums



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


Template 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


Anti-Aliasing 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


FrameBufferObject 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

RotoZoom 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 effec

Boids 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

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


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


MinMaxBlending 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 Skybox presents an example usage of cube map texture in OpenGL ES 3.0.

Shadow Mapping

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