Android OpenGL ES 2.0, 3.0, 3.1 & 3.2 Emulator

Android Emulator for OpenGL ES 2.0, 3.0, 3.1 and 3.2

Develop applications for the next generation graphics API

The OpenGL® ES Emulator is a library that maps OpenGL ES 3.2 API calls to the OpenGL API. By running on a standard PC, the emulator helps software development and testing of next generation OpenGL ES 3.2 applications since no embedded platform is required. The emulator requires a graphics card that supports at least OpenGL 4.3.

Features and benefits

  • OpenGL ES 3.2 Emulation
    High Performance OpenGL ES 3.2 Emulation accelerated by desktop GPU capable of OpenGL 4.3. Support for OpenGL ES features such as transform feedback, multiple render targets, instancing and more


For help and support from ARM and fellow developers, please visit the ARM Mali Graphics Developer Community.


  •  Fixed problem in accessing 3.2 API entrypoints and 3.2 specific enums
  • Added support for OpenGL ES 3.2 API version
  • Improved interoperability with AMD/ATI graphics cards
  • We’ve introduced the ‘mali-checker’ application. This will give you a report about what features of the emulator will be available based on your computers software and hardware. For example, to emulate OpenGL ES 3.1 your computer must support at least OpenGL 4.3, the application will check this for you
  • Improved support for AMD/ATI graphics cards
  • The Windows installer is now signed with a digital certificate
  • The Linux installation location has been made more consistent with Debian/Ubuntu policies
  • Using latest Mali Offline Compiler with support for OpenGL SL 310 es version of shader language
  • Fixed problem with incorrect log content on successful OpenGL SL 310 es shader compilation.
  • Improving mix(…)  built-in functions support in OpenGL SL 310 es shaders.
  • Extensions from Android Extension Pack supported:

    • KHR_debug
    • KHR_texture_compression_astc_ldr
    • KHR_blend_equation_advanced
    • OES_sample_shading
    • OES_sample_variables
    • OES_shader_image_atomic
    • OES_shader_multisample_interpolation
    • OES_texture_stencil8
    • OES_texture_storage_multisample_2d_array
    • EXT_copy_image
    • EXT_draw_buffers_indexed
    • EXT_geometry_shader
    • EXT_gpu_shader5
    • EXT_primitive_bounding_box
    • EXT_shader_io_blocks
    • EXT_tessellation_shader
    • EXT_texture_border_clamp
    • EXT_texture_buffer
    • EXT_texture_cube_map_array
    • EXT_texture_sRGB_decode
  • eglGetProcAddress  gives pointers to any of all implemented entrypoints.

  • Fixed problem with MSAA using EGL configurations
  • Support for Geometry shaders and Tessellation shaders, part of the Android Extension Pack
  • The following OpenGL ES extensions are now supported in the emulator:
    • GL_EXT_shader_io_blocks,
    • GL_EXT_gpu_shader5,
    • GL_EXT_geometry_shader,
    • GL_EXT_tessellation_shader
  • Added support for OpenGL ES 3.1 API version
  • Extensions GL_OES_EGL_image and GL_OES_EGL_image_external are supported for GLES 3.0 contexts

See previous releases here.