Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Now that we have three separate things we want to measure (instructions,
cycles, and loops), it's impractical to keep adding special code for
changes in each thing. Instead, for each program in before and after we
store a table of measurement -> value, and when reporting we loop over
each measurement and report helped/hurt before reporting the gained/lost
programs.
|
|
|
|
Previously, if the number of loops changed (and the instruction count
changed wildly) we'd happily consider those differences in the totals,
even though they're not meaningful.
Based on code by Abdiel Janulgue <abdiel.janulgue@linux.intel.com>.
|
|
|
|
Lets me use run.py without extra arguments without X.
|
|
|
|
|
|
|
|
|
|
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
|
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
|
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
|
|
|
|
|
|
|
|
|
If write() fails in a signal handler, really, what are you going to do?
|
|
|
|
commit 0669babf2b5b50cbc185b0f714671b2c2b368778
Author: Matt Turner <mattst88@gmail.com>
Date: Wed Mar 4 13:42:48 2015 -0800
glamor: Perform texture2D() separately from swizzle.
|
|
|
|
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
|
|
|
|
|
If the driver hits an assertion failure and aborts, the runner will die,
which can be hard to debug. This patch makes the runner catch SIGABRT
and SIGSEGV and and print out a list of shaders each thread was
processing before it terminates.
=> CRASHED <= while processing these shaders:
shaders/foo/1936.shader_test
shaders/foo/9991.shader_test
shaders/foo/1832.shader_test
v2: Handle SIGSEGV too, since SIGABRT doesn't catch real crashes (such
as null pointer dereferences). Call _exit() to avoid continuing.
Use write() in the signal handler since fputs() is not signal safe.
According to an Austin Group bug tracker entry, strlen() is signal
safe, so using it should be fine.
|
|
|
|
If the buffer for the full extension string needs to be grown,
continue writing from the correct position.
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
|
This means you can't use run.py anymore, but "run" is so much faster
that you really don't want to be using it.
|
|
The Unity 3D engine ships with a number of built-in shaders, which will
likely be used by many games. These were originally written in HLSL,
but translated via a bunch of software.
Thanks to Aras Pranckevičius <aras@unity3d.com> for giving us a copy of
these shaders under the MIT license.
|
|
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.
|
|
|
|
|
|
|
|
|
|
Print a warning and append shader-db's arguments instead
|
|
|
|
The intention behind ignoring shaders/closed is that you can drop
additional shaders there that you don't have permission to publish.
|
|
We don't need a ton of copies of gl_FragColor = color. These are most
likely the driver-generated clear shaders anyway.
|
|
INTEL_DEBUG=wm will probably go away at some point.
|
|
We don't support .vert and .frag files anymore.
|
|
Fixes compilation.
|
|
Fixes problems with warsow/25.shader_test, and would help Unigine
shaders as well.
|
|
This was only needed for compiling the outdated Unigine shaders,
which I don't care about - the newer Unigine code doesn't need this.
It apparently also breaks things these days, since it enables
GL_ARB_gpu_shader5, which treats 'sample' as a reserved word.
Reported-by: Matt Turner <mattst88@gmail.com>
|
|
|
|
This fixes a bug introduced by 8ca864, which accidentally removed the
use of get_result()
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
|
|
|
|
v2: Rebase on Dylan's cleanups.
|
|
Duplicates happen. They really shouldn't, but printing a "bad things
are happening" message is better than aborting and refusing to do
anything.
|
|
This came from a MESA_GLSL=dump report from:
https://bugs.freedesktop.org/show_bug.cgi?id=78691
So I don't know much about the details. Better than nothing.
|
|
v2 (Ken): Keep the code to skip .out files.
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
|