Meego Wiki
Views

Quality/TestSuite/OpenGLGLES Performance Test Specification

From MeeGo wiki
Jump to: navigation, search

Contents

Introduction

These benchmarks are intended to measure OpenGL ES 2.0 performance with synthetic and more real-life tests. Also the set contain some functional tests, such as checking needed GL and EGL extensions.

These tests perform various drawing operations using EGL and OpenGL. Results will contain FPS and CPU usage measurements.

Test Coverage

Software Coverage

blts-opengles2-tests uses GLES2 and EGL APIs. Current coverage for tests:

Hardware Coverage

Display, GPU.

Future Improvements

Extend API coverage, add more functional test cases.

Building packages

The build environment must have the following packages installed:

  • libbltscommon-devel
  • libnl-devel
  • libX11-devel
  • libXdamage-devel
  • libXcomposite-devel
  • libXext-devel
  • libEGL-devel
  • libGLESv2-devel

The source package includes the pack.sh script, which is used for building RPM and Debian packages and source tar packages. To build an RPM package with the script, execute this command in the top level source directory of asset:

./pack.sh -r

To get help about the packaging script, execute

./pack.sh -h

The asset can also be built manually by executing:

./autogen.sh
./configure
make

Running and running the tests

When the environment and device has been set up, run as root;

$ blts-opengles2-tests

Test case arguments

Arguments:

General Switch Function
-l Used log file
-e Execute single or multiple selected tests, for example -e 1,4,5.
-en Execute test by name, for example -en "My test X"
-s Show list of all tests
-C Used configuration file
-? Help message
-xml, -axml Create result XML. -axml appends results to an existing XML file.
-auto Silent logging for test automation. Only the results are printed to stdout.
-v Verbose logging (default)
-vv Even more verbose logging
Optional Switch Function
-t Maximum execution time of each test in seconds (default: 10s for smoke test, 30s for full test)
-w Used window width. If 0 uses desktop width. (default: 0)
-h Used window height. If 0 uses desktop height. (default: 0)
-d Used window depth. 16, 24 or 32. If 0 uses desktop depth. (default: 0)
-c Run the tests with minimal compositor

Test case descriptions and execution commands

Current test asset contains following cases;

  • OpenGL-Enumerate GL extensions
* Uses glGetString(GL_EXTENSIONS) to fetch all available extensions, and verifies that required extensions are found.
* $ blts-opengles2-tests -en "OpenGL-Enumerate GL extensions"
  • OpenGL-Enumerate EGL extensions
* Uses eglQueryString with EGL_EXTENSIONS to list all available extensions, and verifies that required extensions are found (currently just texture_from_pixmap).
* $ blts-opengles2-tests -en "OpenGL-Enumerate EGL extensions"
  • OpenGL-Enumerate EGL configs
* Uses eglGetConfigs to lists contents of all EGL configurations.
* $ blts-opengles2-tests -en "OpenGL-Enumerate EGL configs"
  • OpenGL-Simple triangle
* Draws simple rotating triangle.
* $ blts-opengles2-tests -en "OpenGL-Simple triangle"
  • OpenGL-Simple blit
* Simple blit test with four 'desktop' textures.
* $ blts-opengles2-tests -en "OpenGL-Simple blit"
  • OpenGL-Blit with blend
* Same as previous, but second layer of 'desktops' is added and blended.
* $ blts-opengles2-tests -en "OpenGL-Blit with blend"
  • OpenGL-Blit with blend and widgets
* Same as previous, adds 'widgets' to each 'desktop'.
* $ blts-opengles2-tests -en "OpenGL-Blit with blend and widgets"
  • OpenGL-Blit with blend and widgets with shadows
* Same as previous, adds shadows to 'widgets'.
* $ blts-opengles2-tests -en "OpenGL-Blit with blend and widgets with shadows"
  • OpenGL-Blit with blend and widgets with shadows + particles
* Same as previous, adds particles to each 'widget'.
* $ blts-opengles2-tests -en "OpenGL-Blit with blend and widgets with shadows + particles"
  • OpenGL-Blit with blend and widgets with shadows + particles + rotate
* Same as previous, rotates the entire scene.
* $ blts-opengles2-tests -en "OpenGL-Blit with blend and widgets with shadows + particles + rotate"
  • OpenGL-Blit with blend and widgets with shadows + particles + rotate + zoom
* Same as previous, rotates and zooms the entire scene.
* $ blts-opengles2-tests -en "OpenGL-Blit with blend and widgets with shadows + particles + rotate + zoom"
  • OpenGL-Blit with blend and widgets with shadows + particles + rotate + zoom and blur all
* Same as previous, blurs the entire scene (3x3 averaging filter).
* $ blts-opengles2-tests -en "OpenGL-Blit with blend and widgets with shadows + particles + rotate + zoom and blur all"
  • OpenGL-Blit with blend and animated widgets with shadows
* Same as 'OpenGL-Blit with blend and widgets', but textures of each widget are generated on each frame.
* $ blts-opengles2-tests -en "OpenGL-Blit with blend and animated widgets with shadows"
  • OpenGL-Polygons-per-second
* Polygons per second test (one million polygons on scene).
* $ blts-opengles2-tests -en "OpenGL-Polygons-per-second"
  • OpenGL-Fillrate test
* Fillrate test (fill with changing color).
* $ blts-opengles2-tests -en "OpenGL-Fillrate test"
  • OpenGL-Texels-per-second
* 'Texels per second' (texture->screen performance)
* $ blts-opengles2-tests -en "OpenGL-Texels-per-second"
  • OpenGL-Fragment shader performance
* Fragment shader test, calculate wavy mandelbrot with fragment shader.
* $ blts-opengles2-tests -en "OpenGL-Fragment shader performance"
  • OpenGL-Vertex shader performance
* Vertex shader test, deform 7200 polygon plane into an animated spike ball with vertex shader.
* $ blts-opengles2-tests -en "OpenGL-Vertex shader performance"
  • OpenGL-Convolution filter
* Configurable convolution filter test. Used filter is defined in blts-opengles2-perf.cnf.
* $ blts-opengles2-tests -en "OpenGL-Convolution filter"

Module Design and Architecture

The test module can be compiled to self-sufficient command line program. Both Debian and RPM packaging is also provided.

References

khronos.org http://www.khronos.org/opengles/2_X/ GLESv2 specifications]
blts-opengles2-tests blts-opengles2-tests

Change History

Version Date Handled By Status Comments
0.1 22-sep-2010 Iekku Huttunen Draft Page created
Personal tools