summaryrefslogtreecommitdiff
path: root/shaders/unity/56-PBS_Deferred_MRT.shader_test
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2014-11-12 16:51:27 -0800
committerMatt Turner <mattst88@gmail.com>2014-12-09 15:08:28 -0800
commitc6a13041fa143cbc6749bb3f10d23c3afe66edec (patch)
tree02aa169c0c6a21deecec57edd2a9d2d72b9b945e /shaders/unity/56-PBS_Deferred_MRT.shader_test
parenta38c5fc592e5ef766245c82a3e3774280ef3c598 (diff)
Add a new runner, written in C.
Whereas run.py runs piglit's shader_runner binary to compile each shader individually and parses the output of INTEL_DEBUG=fs,vs,gs to find the number of instructions and loops, this runner compiles all of the shaders from a single process and uses output from GL_KHR_debug to get the information we want. It uses EGL and GBM (and render nodes) to create a GL display and uses libepoxy for GL function pointer management. It creates one thread per-CPU using OpenMP, each of which compiles shaders in parallel. It creates two OpenGL contexts, one core context and one compatibility context and switches between them as needed. run.py is able to compile all of the GLSL shaders in shader-db (including the closed portion) in about 300 seconds on my quad-core Haswell. This program can do the same in 90 seconds. Profiling shows that it's largely limited by malloc performance, and preloading jemalloc (LD_PRELOAD=/usr/lib64/libjemalloc.so.1) reduces the execution time to about 80 seconds.
Diffstat (limited to 'shaders/unity/56-PBS_Deferred_MRT.shader_test')
0 files changed, 0 insertions, 0 deletions