summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2013-10-14 15:01:08 -0700
committerJordan Justen <jordan.l.justen@intel.com>2013-10-14 16:10:13 -0700
commitfeae537978d87850bbf37bed2212db6080f1c4ff (patch)
treed938625c49a4938bc4cdaba483c688a1ceda3fbe
parent6c5557e620077fb08ba18afcc85f99334e31e4ab (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_test56
-rw-r--r--1080p-depth-hiz-clear.shader_test56
-rwxr-xr-xcompare-perf.sh44
-rwxr-xr-xglsl3
-rwxr-xr-xhiz3
-rwxr-xr-xrun-comparison3
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
diff --git a/glsl b/glsl
new file mode 100755
index 000000000..8395a64d1
--- /dev/null
+++ b/glsl
@@ -0,0 +1,3 @@
+#!/bin/bash
+bin/shader_runner 1080p-depth-glsl-clear.shader_test -fbo -auto | \
+ awk '/microseconds: / {print $2}'
diff --git a/hiz b/hiz
new file mode 100755
index 000000000..fb6d1d099
--- /dev/null
+++ b/hiz
@@ -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
+