[Piglit] faster piglit start-up

Brian Paul brianp at vmware.com
Wed Apr 12 20:15:54 UTC 2017

When we run piglit the all.py script traverses the entire tests/ and 
generated/tests/ directories looking for *.shader_test, *.vert, *.frag, 
etc. shaders to run.  In the generated_tests/ directory, there's about 
60,000 entries to scan (ls -R generated_tests|wc)

This takes some time, especially so with MinGW in a Windows VM.  Between 
that and other setup overhead it takes about 8 minutes on my system 
before any tests are run.  Ugh.  Linux is much faster but there's still 
a start-up lag.

I'd like to trim this down.  The prime area I'm looking at is skipping 
swaths of tests when we know the particular feature is not supported by 
the GL driver.

In framework/driver_classifier.py we run glxinfo to get the GL renderer 
string, etc.  I'm looking at expanding this to get the driver's GL and 
GLSL versions, extension list, etc.

Then, in all.py when we're scanning the tests directory and we find 
somthing like "spec/arb_gpu_shader_fp64" which may not be supported by 
the driver, we can skip that directory.  For drivers which don't support 
all the latest GL 4.x extensions (like VMware's) we can save a lot of 
time by skipping subdirectory traversals and building the test list.

I'm digging into this now but it'll probably be a few days before I'll 
have something to review.

I'd be interested to hear any other ideas to reduce start-up time.


More information about the Piglit mailing list