[Piglit] Cleaning up Piglit's crazy build system and GLES1 dispatch

Chad Versace chad.versace at linux.intel.com
Wed Jun 11 13:27:51 PDT 2014


I'm working to clean up Piglit's crazy build system, which builds each
target multiple times, once for each supported API.

You can track my progress here:
    git://people.freedesktop.org/~chadversary/piglit refs/heads/unify-build
    http://cgit.freedesktop.org/~chadversary/piglit/log/?h=unify-build

When I'm done, the result should be:

    - Piglit will build each target (library and test executable) at most
      *once*. If a test executable needs to support multiple APIs, then
      the executable will determine which API to use at *runtime* rather
      than buildtime.

      For example, Piglit will no longer build libpiglitutil_gl,
      libpiglitutil_gles1, libpiglitutil_gles2, and libpiglitutil_gles3.
      Instead, all three will be folded into the generic libpiglitutil.
      The same will happen for the multiple flavors of shader_runner.

    - All per-API CMake files will be removed. That is,
            tests/util/CMakeLists.txt
            tests/util/CMakeLists.gl.txt
            tests/util/CMakeLists.gles1.txt
            tests/util/CMakeLists.gles2.txt
            ...
      will be replaced with a single
            tests/util/CMakeLists.txt

My motivation is that I want to generalize many desktop GL tests (shader
runner as well as C tests) to run also under a GLES context. And I want
to accomplish that without forking test files or building all of Piglit
multiple times.

The first step in unifying the build system is to extend piglit-dispatch
to support GLES1. I'm working on that now.

As I get closer to approaching to the final goal (generalizing the GL
tests to run under a GLES context), I'll start a discussion on the list
about how to best design the GLES-ification of Piglit.

-Chad


More information about the Piglit mailing list