Piglit is a collection of automated tests for OpenGL implementations that aims at improving the quality of open source OpenGL drivers by providing developers with a simple means to perform regression tests.
ARM SoCs that come with a GPU usually (always?) supports OpenGL ES however. That’s why, Tom Gall (Linaro) has modified Piglit in order to bring this test suite to ARM Linux and OpenGL ES. There are about 6,900 OpenGL tests in Piglit, and currently 1,047 Piglit (OpenGL ES) tests can run on ARM .
Tom also explains that piglit developers are now using waffle, a cross-platform C library that allows one to defer selection of GL API and window system until runtime. This will allow your to select the variation of the GL API (GL, GL ES) and windowing system (X11, Wayland…) you want to use at runtime.
The code is still heavily modified, but it’s in the open, and you can try it yourself by following the instructions (native build) below.
- Get “Linaro” Piglit source code:
12git clone git://git.linaro.org/people/tomgall/piglit.gitgit checkout -b my-copy origin/gles2-all
- Build and install waffle
12git clone git://people.freedesktop.org/~chadversary/wafflecd waffle
and follow the instructions in README.txt to complete the build and instructions
- Build Piglit
To turn on just the gles2 tests, press ‘c’ to configure, and ‘g’ to generate. Complete the build:
- Run the tests and format the results for web browser display:
12./piglit-run.py tests/all_es2.tests results/es2./piglit-summary-html.py sum/es2 results/es2
- Point your web browser to the sum directory to display the results in tabular format.
I haven’t had time to try it myself, but the results webpage should look like that.
Linaro will continue implementing more OpenGL ES tests, and also work on having Piglit run on Android, and integrate it into LAVA automated test system.