summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEero Tamminen <eero.t.tamminen@intel.com>2017-09-12 17:33:21 +0300
committerMartin Peres <martin.peres@linux.intel.com>2017-10-04 19:04:39 +0300
commitc0711aef8a21d431e758de37dfc86d7704fc8218 (patch)
tree3bf7698ad4245d6084cb6e3a3951a4bf2cd89ccc
parentc27955fce7a4079fef8b22f442872bdde9c3d96e (diff)
test/vktrace_validate: support multiple frames per trace
Had missed that vkreplay also accepts comma separate list of frames. Update documentation accordingly.
-rwxr-xr-xtests.d/vulkan/vktrace_validate.test35
-rw-r--r--user_parameters.sh.sample4
2 files changed, 23 insertions, 16 deletions
diff --git a/tests.d/vulkan/vktrace_validate.test b/tests.d/vulkan/vktrace_validate.test
index 3ba9d2f..490b054 100755
--- a/tests.d/vulkan/vktrace_validate.test
+++ b/tests.d/vulkan/vktrace_validate.test
@@ -19,34 +19,39 @@ test -x "${VKREPLAY_BINARY}" || return 1
# 1 argument: $trace
function __vkreplay_validate_run__ {
local trace=$1
+ local image
local frame
- local oldname
+ local frames
local newname
+ local imgcount
local sha
output=${run_log_file}_tmp
mkdir -p "$output"
pushd "$output" >/dev/null
- # for now, vktrace supports just one frame
- frame=$(head -1 "${trace}.validate"|cut -d, -f1)
+ # comma separated frame numbers
+ frames=$(head -1 "${trace}.validate")
- run_bench 0 "${VKREPLAY_BINARY}" -s ${frame}-1-1 -o "$trace" >/dev/null 2>&1
- oldname=$frame.ppm
- if [ \! -f "$oldname" ]; then
- touch "$oldname"
- echo "ERROR: no image; Vulkan replay failure, or screenshot layer missing!" 1>&2
- fi
-
- # store file under its own SHA to get free de-duplication
- sha=$(sha1sum $oldname | cut -d' ' -f1)
- newname=$sha.png
- convert $oldname ../$newname
+ run_bench 0 "${VKREPLAY_BINARY}" -s ${frames} -o "$trace" >/dev/null 2>&1
- echo "$frame,$newname"
+ imgcount=0
+ for image in *.ppm; do
+ frame=${image%.ppm}
+ # store file under its own SHA to get free de-duplication
+ sha=$(sha1sum $image | cut -d' ' -f1)
+ newname=$sha.png
+ convert $image ../$newname
+ echo "$frame,$newname"
+ imgcount=$(($imgcount+1))
+ done
popd >/dev/null
rm -r "$output"
+
+ if [ $imgcount -eq 0 ]; then
+ echo "ERROR: no images - Vulkan replay failure, screenshot layer missing, or no screenshots specified!" 1>&2
+ fi
}
for framefile in "${VKREPLAY_TRACE_FOLDER}/"*.validate; do
diff --git a/user_parameters.sh.sample b/user_parameters.sh.sample
index 315306e..a0f4256 100644
--- a/user_parameters.sh.sample
+++ b/user_parameters.sh.sample
@@ -69,6 +69,7 @@ GLRETRACE_BINARY=/usr/bin/glretrace
# Notes:
# - Frames are ID'd by their Apitrace GL/ES call numbers
# - Only the first line in benchmark & validate files is significant, rest can be comments
+# - Numbers are separated by commas, without any whitespace!
#
# For example:
# - dota2:tutorial:high:1080p.trace
@@ -84,7 +85,8 @@ VKREPLAY_BINARY=/usr/bin/vkreplay
# VulkanTools screenshot layer location (needed for validation) for Vulkan loader
VK_LAYER_PATH=/usr/lib/VulkanTools/layersvt/
-# Traces and files listing which frame in them is to be validated are named as:
+# Traces, and files containing comma separate list of frames to
+# validate from them, are named as:
# <name>.vktrace
# <name>.vktrace.validate
# Only the first line in validate files is significant, rest can be comments