OpenGL ES testing

AOSP includes the drawElements Quality Program (deqp) GPU testing suite at https://android.googlesource.com/platform/external/deqp.

To work with the latest submitted code, use the deqp-dev branch. For code that matches a specific Android CTS release, use the release-code-name-release branch (e.g. for Android 6.0, use the marshmallow-release branch).

Deploying deqp

To deploy the deqp test suite to a new environment, review all pages in this section:

  • Building test programs. Discusses build systems such as CMake, targets, and various builds (Win32, Android, Linux).
  • Porting the test framework. Describes adapting base portability libraries, implementing test-framework platform-integration interfaces, and porting the execution service. Porting is optional (depending on the target platform).
  • Running the tests. Provides instructions for running deqp tests in Linux and Windows environments, command line arguments, and the Android package.
  • Automating the tests. Covers test automation options, command line tools, CSV and XML exporting, and conversion to JUnit.
  • Using special test groups. Provides advice for running memory allocation and long-running stress tests.
  • Integrating with Android CTS. Describes the mustpass list of tests, duplicating runs, and mapping CTS results.

Source layout

The source code layout for the deqp test modules and supporting libraries is shown in the table below (the listing is not comprehensive but highlights the most important directories).

Directory Description
android

Android tester sources and build scripts

data

Test data files

modules

Test module sources

modules/egl

EGL module

modules/gles2

GLES2 module

modules/gles3

GLES3 module

modules/gles31

GLES3.1 module

modules/gles32

GLES3.2 module

targets

Target-specific build configuration files

framework

deqp test module framework and utilities

framework/delibs

Base portability and build libraries

framework/platform

Platform ports

framework/qphelper

Test program integration library (C)

framework/common

Deqp framework (C++)

framework/opengl, framework/egl

API-specific utilities

execserver

Device-side ExecServer source

executor

Host-side test executor shell tool and utilities

external

Build stub directory for external libs libpng and zlib

Open source components

The deqp uses libpng and zlib, which can be fetched using the script platform/external/deqp/external/fetch_sources.py or via git from platform/external/[libpng,zlib].