[Piglit] [PATCH 00/11] OpenGL fast skipping for native tests.

Dylan Baker baker.dylan.c at gmail.com
Thu Nov 5 14:34:48 PST 2015


On Thu, Nov 05, 2015 at 02:16:38PM -0800, baker.dylan.c at gmail.com wrote:
> From: Dylan Baker <baker.dylan.c at gmail.com>
> 
> One of the problems with piglit is the runtime, especially on older
> platforms where large numbers of tests skip. The average runtime on HSW
> for a shader_runner test that skips is about .05 seconds. This seems
> pretty small, until one considers that there are ~3000 skipping shader
> tests, and that number will only grow as more feature are added to
> piglit.
> 
> This patch implements a Mixin class for Test derived classes that
> implements skipping based on OpenGL and OpenGL ES extensions, version,
> and shader language version. It relies on wflinfo for this information,
> but will fall back if wflinfo isn't available.
> 
> This mixin is provided to ShaderTest and GLSLParserTest, which already
> have this information readily available to them (or can easily gather
> it), and improves their run time on all platforms substantially.
> 
> On g965, this reduced piglit runtime for gpu.py by roughly 25%, using
> '-c' with two cores.
> 
> Patches 1-2: My global options series which has been on the list,
>              I'll likely merge that soon unless there are objections
> Patch 3:     Fixes a bug in one of the test generators
> 
> The remaining patches implement the fast skipping feature.
> 
> The design of this mixin is conservative. I would prefer to run a few
> tests that could be skipped, but never skip one that could be run than
> the opposite.
> 
> It might also be worth having (though it is no way required) my patch to
> update glslparser to know about GLES 3.1 and GLES 3.2, since without it
> one test (at least for me) will go from fail to skip.
> 
> Dylan Baker (11):
>   framework: make options a global variable.
>   framework: Convert the codebase to use the new global Options
>   gen_builtin_uniform_tests.py: Add extensions to require section
>   framework/test/opengl.py: Add FastSkipMixin which checks extensions
>   framework/test/opengl.py: add support for GL(ES) version skipping.
>   framework/test/opengl.py: Add GLSL and GLSL ES fast skipping
>   framework/test/shader_test.py: Add fast skipping support for
>     extensions
>   framework/test/shader_test.py: add GL and GLES version fast skipping.
>   framework/test/shader_test.py: add GLSL (ES) based skipping.
>   framework/test/glsl_parser_test.py: Add requirement based fast
>     skipping
>   framework/test/glsl_parser_test.py: add support for GLSL (ES) based
>     skipping.
> 
>  framework/backends/abstract.py               |  16 +-
>  framework/core.py                            |  50 ----
>  framework/options.py                         | 185 +++++++++++++
>  framework/profile.py                         |  55 ++--
>  framework/programs/run.py                    |  62 ++---
>  framework/test/base.py                       |  14 +-
>  framework/test/gleantest.py                  |   6 +-
>  framework/test/glsl_parser_test.py           |  20 +-
>  framework/test/opengl.py                     | 338 +++++++++++++++++++++++
>  framework/test/piglit_test.py                |   4 +-
>  framework/test/shader_test.py                | 104 +++++--
>  framework/tests/backends_tests.py            |   8 +-
>  framework/tests/base_tests.py                |  43 ++-
>  framework/tests/core_tests.py                |  27 +-
>  framework/tests/gleantest_tests.py           |  17 +-
>  framework/tests/glsl_parser_test_tests.py    |  75 ++++-
>  framework/tests/json_tests.py                |   8 +-
>  framework/tests/opengl_tests.py              | 399 +++++++++++++++++++++++++++
>  framework/tests/options_tests.py             | 178 ++++++++++++
>  framework/tests/piglit_test_tests.py         |  26 +-
>  framework/tests/profile_tests.py             |  33 ++-
>  framework/tests/shader_test_tests.py         | 117 ++++++++
>  generated_tests/gen_builtin_uniform_tests.py |   2 +
>  piglit-print-commands.py                     |  12 +-
>  tests/igt.py                                 |   6 +-
>  tests/xts.py                                 |   2 +-
>  tox.ini                                      |   4 +-
>  27 files changed, 1555 insertions(+), 256 deletions(-)
>  create mode 100644 framework/options.py
>  create mode 100644 framework/test/opengl.py
>  create mode 100644 framework/tests/opengl_tests.py
>  create mode 100644 framework/tests/options_tests.py
> 
> -- 
> 2.6.2
> 

I always forget. This is available in git form here:
https://github.com/dcbaker/piglit submit/fast-skip 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20151105/f1395cda/attachment.sig>


More information about the Piglit mailing list