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:

Shell

1

2

git clonegit://git.linaro.org/people/tomgall/piglit.git

gitcheckout-bmy-copyorigin/gles2-all

Build and install waffle

Shell

1

2

git clonegit://people.freedesktop.org/~chadversary/waffle

cdwaffle

and follow the instructions in README.txt to complete the build and instructions

Build Piglit

Shell

1

ccmake.

To turn on just the gles2 tests, press ‘c’ to configure, and ‘g’ to generate. Complete the build:

Shell

1

make

Run the tests and format the results for web browser display:

Shell

1

2

./piglit-run.pytests/all_es2.testsresults/es2

./piglit-summary-html.pysum/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.

I can build waffle and piglit, but the tests fails because I’m building waffle without support for glx. I’m running it on a Samsung ARM Chromebook, and this doesn’t use glx, as far as I know. Does OpenGL ES use GLX? Isn’t that just for OpenGL (no ES)?