diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2013-10-14 15:01:08 -0700 |
---|---|---|
committer | Jordan Justen <jordan.l.justen@intel.com> | 2013-10-14 16:10:13 -0700 |
commit | feae537978d87850bbf37bed2212db6080f1c4ff (patch) | |
tree | d938625c49a4938bc4cdaba483c688a1ceda3fbe | |
parent | 6c5557e620077fb08ba18afcc85f99334e31e4ab (diff) |
Scripts to micro benchmark glsl clear vs hiz cleardepth-clear-timing-test1
Running ./hiz or ./glsl should print out a decimal number.
Running ./run-comparison should run compare-perf.sh/ministat
with ./glsl being the before and ./hiz being the after.
Notes: The tests each do a couple hiz and glsl clears before
testing the timing on 10 clear operations.
-rw-r--r-- | 1080p-depth-glsl-clear.shader_test | 56 | ||||
-rw-r--r-- | 1080p-depth-hiz-clear.shader_test | 56 | ||||
-rwxr-xr-x | compare-perf.sh | 44 | ||||
-rwxr-xr-x | glsl | 3 | ||||
-rwxr-xr-x | hiz | 3 | ||||
-rwxr-xr-x | run-comparison | 3 |
6 files changed, 165 insertions, 0 deletions
diff --git a/1080p-depth-glsl-clear.shader_test b/1080p-depth-glsl-clear.shader_test new file mode 100644 index 000000000..0080d40ed --- /dev/null +++ b/1080p-depth-glsl-clear.shader_test @@ -0,0 +1,56 @@ +# Micro benchmark for ~1080p depth clears + +[require] +GLSL >= 1.10 +SIZE 1920 1080 +DEPTH + +[vertex shader] +void main() +{ + gl_Position = vec4(0); +} + +[fragment shader] +void main() +{ + gl_FragColor = vec4(0); +} + +[test] +clear depth 0.0 +scissor 1 0 1919 1080 +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear + +echo glScissor(1, 0, 1919, 1080) (glsl clear path) +time reset +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +time show diff --git a/1080p-depth-hiz-clear.shader_test b/1080p-depth-hiz-clear.shader_test new file mode 100644 index 000000000..0267ea4b6 --- /dev/null +++ b/1080p-depth-hiz-clear.shader_test @@ -0,0 +1,56 @@ +# Micro benchmark for ~1080p depth clears + +[require] +GLSL >= 1.10 +SIZE 1920 1080 +DEPTH + +[vertex shader] +void main() +{ + gl_Position = vec4(0); +} + +[fragment shader] +void main() +{ + gl_FragColor = vec4(0); +} + +[test] +clear depth 0.0 +scissor off +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear + +echo glScissor OFF (hiz fast depth clear path) +time reset +clear +clear +clear +clear +clear +clear +clear +clear +clear +clear +time show diff --git a/compare-perf.sh b/compare-perf.sh new file mode 100755 index 000000000..c5864e728 --- /dev/null +++ b/compare-perf.sh @@ -0,0 +1,44 @@ +#1/bin/bash + +# Clean up debug environment I've got that results in spam into the logs. +unset LIBGL_DEBUG +export vblank_mode=0 + +i=0 +first=0 + +rm -f before after + +while true; do + # The printout of ministat at the end of the loop may get + # pipelined and thus take CPU during our next test run, often + # during the first run of the two. To avoid systematic bias, + # flip around which testcase runs first each time. + if test $first -lt 1; then + $2 $1 >> before + $3 $1 >> after + else + $3 $1 >> after + $2 $1 >> before + fi + first=$((1-$first)) + + # Sometimes it's nice to see the numbers too, so uncomment + # that. + + # cat before after + + # nuke the data from the first run. We usually don't want the + # first run, because that's when we're loading disk cache, + # warming up the GPU, etc. + if test $i = 0; then + rm -f before after + fi + + # once we've got 3 points each, start running ministat. + if test $i -gt 1; then + ministat before after + fi + + i=$(($i + 1)) +done @@ -0,0 +1,3 @@ +#!/bin/bash +bin/shader_runner 1080p-depth-glsl-clear.shader_test -fbo -auto | \ + awk '/microseconds: / {print $2}' @@ -0,0 +1,3 @@ +#!/bin/bash +bin/shader_runner 1080p-depth-hiz-clear.shader_test -fbo -auto | \ + awk '/microseconds: / {print $2}' diff --git a/run-comparison b/run-comparison new file mode 100755 index 000000000..2f80f571a --- /dev/null +++ b/run-comparison @@ -0,0 +1,3 @@ +#!/bin/bash +./compare-perf.sh true ./glsl ./hiz + |