2018-06-16 17:42:13 +01:00
|
|
|
#!/bin/bash
|
|
|
|
# -*- mode: sh -*-
|
|
|
|
|
|
|
|
function show_help() {
|
|
|
|
cat <<EOF
|
|
|
|
Usage: intel_dump_gpu [OPTION]... [--] COMMAND ARGUMENTS
|
|
|
|
|
|
|
|
Run COMMAND with ARGUMENTS and dump an AUB file that captures buffer
|
|
|
|
contents and execution of the GEM application.
|
|
|
|
|
2018-10-29 18:14:44 +00:00
|
|
|
-g, --gdb Launch GDB
|
|
|
|
|
2018-06-16 17:42:13 +01:00
|
|
|
-o, --output=FILE Name of AUB file. Defaults to COMMAND.aub
|
|
|
|
|
|
|
|
--device=ID Override PCI ID of the reported device
|
|
|
|
|
|
|
|
-v Enable verbose output
|
|
|
|
|
2018-07-03 19:38:39 +01:00
|
|
|
-vv Enable extra verbosity - dumps gtt mappings
|
|
|
|
|
2018-06-16 17:42:13 +01:00
|
|
|
--help Display this help message and exit
|
|
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
}
|
|
|
|
|
2018-07-20 11:20:41 +01:00
|
|
|
ld_preload="@install_libexecdir@/libintel_dump_gpu.so${LD_PPRELOAD:+:$LD_PRELOAD}"
|
2018-06-16 17:42:13 +01:00
|
|
|
args=""
|
|
|
|
file=""
|
2018-07-20 11:20:41 +01:00
|
|
|
gdb=""
|
2018-06-16 17:42:13 +01:00
|
|
|
|
|
|
|
function add_arg() {
|
|
|
|
arg=$1
|
|
|
|
args="$args$arg\n"
|
|
|
|
}
|
|
|
|
|
|
|
|
while true; do
|
|
|
|
case "$1" in
|
|
|
|
-v)
|
|
|
|
add_arg "verbose=1"
|
|
|
|
shift 1
|
|
|
|
;;
|
2018-07-03 19:38:39 +01:00
|
|
|
-vv)
|
|
|
|
add_arg "verbose=2"
|
|
|
|
shift 1
|
|
|
|
;;
|
2018-11-07 10:55:04 +00:00
|
|
|
-o)
|
|
|
|
file=$2
|
|
|
|
add_arg "file=${file:-$(basename ${file}).aub}"
|
|
|
|
shift 2
|
|
|
|
;;
|
2018-06-16 17:42:13 +01:00
|
|
|
-o*)
|
|
|
|
file=${1##-o}
|
|
|
|
add_arg "file=${file:-$(basename ${file}).aub}"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
--output=*)
|
|
|
|
file=${1##--output=}
|
|
|
|
add_arg "file=${file:-$(basename ${file}).aub}"
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
--device=*)
|
|
|
|
add_arg "device=${1##--device=}"
|
|
|
|
shift
|
|
|
|
;;
|
2018-07-20 11:20:41 +01:00
|
|
|
--gdb)
|
|
|
|
gdb=1
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-g)
|
|
|
|
gdb=1
|
|
|
|
shift
|
|
|
|
;;
|
2018-06-16 17:42:13 +01:00
|
|
|
--help)
|
|
|
|
show_help
|
|
|
|
;;
|
|
|
|
--)
|
|
|
|
shift
|
|
|
|
break
|
|
|
|
;;
|
|
|
|
-*)
|
|
|
|
echo "intel_aubdump: invalid option: $1"
|
|
|
|
echo
|
|
|
|
show_help
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
break
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
[ -z $1 ] && show_help
|
|
|
|
|
2018-07-18 15:12:57 +01:00
|
|
|
[ -z $file ] && add_arg "file=intel.aub"
|
2018-06-16 17:42:13 +01:00
|
|
|
|
2018-07-20 11:18:18 +01:00
|
|
|
tmp_file=`mktemp`
|
|
|
|
echo -e $args > $tmp_file
|
|
|
|
|
2018-07-20 11:20:41 +01:00
|
|
|
if [ -z $gdb ]; then
|
|
|
|
LD_PRELOAD="$ld_preload" INTEL_DUMP_GPU_CONFIG=$tmp_file $@
|
|
|
|
else
|
|
|
|
gdb -iex "set exec-wrapper env LD_PRELOAD=$ld_preload INTEL_DUMP_GPU_CONFIG=$tmp_file" --args $@
|
|
|
|
fi
|
|
|
|
|
2018-07-20 11:18:18 +01:00
|
|
|
ret=$?
|
|
|
|
rm $tmp_file
|
|
|
|
exit $ret
|