[Piglit] faster piglit start-up
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