You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
2.0 KiB
112 lines
2.0 KiB
#!/bin/bash
|
|
# -*- mode: sh -*-
|
|
|
|
function show_help() {
|
|
cat <<EOF
|
|
Usage: intel_aubdump [OPTION]... [--] COMMAND ARGUMENTS
|
|
|
|
Run COMMAND with ARGUMENTS and dump an AUB file that captures buffer
|
|
contents and execution of the GEM application.
|
|
|
|
-o, --output=FILE Name of AUB file. Defaults to COMMAND.aub
|
|
|
|
-c, --command=CMD Execute CMD and write the AUB file's content to its
|
|
standard input
|
|
|
|
--device=ID Override PCI ID of the reported device
|
|
|
|
-v Enable verbose output
|
|
|
|
--help Display this help message and exit
|
|
|
|
EOF
|
|
|
|
exit 0
|
|
}
|
|
|
|
args=""
|
|
command=""
|
|
file=""
|
|
|
|
function add_arg() {
|
|
arg=$1
|
|
args="$args$arg\n"
|
|
}
|
|
|
|
function build_command () {
|
|
command=""
|
|
for i in $1; do
|
|
if [ -z $command ]; then
|
|
command=$i
|
|
else
|
|
command="$command,$i"
|
|
fi;
|
|
done
|
|
}
|
|
|
|
while true; do
|
|
case "$1" in
|
|
-o)
|
|
file=$2
|
|
add_arg "file=${file:-$(basename ${file}).aub}"
|
|
shift 2
|
|
;;
|
|
-v)
|
|
add_arg "verbose=1"
|
|
shift 1
|
|
;;
|
|
-o*)
|
|
file=${1##-o}
|
|
add_arg "file=${file:-$(basename ${file}).aub}"
|
|
shift
|
|
;;
|
|
--output=*)
|
|
file=${1##--output=}
|
|
add_arg "file=${file:-$(basename ${file}).aub}"
|
|
shift
|
|
;;
|
|
-c)
|
|
build_command "$2"
|
|
add_arg "command=$command"
|
|
shift 2
|
|
;;
|
|
--command=*)
|
|
build_command "${1##--command=}"
|
|
add_arg "command=$command"
|
|
shift
|
|
;;
|
|
--device=*)
|
|
add_arg "device=${1##--device=}"
|
|
shift
|
|
;;
|
|
--help)
|
|
show_help
|
|
;;
|
|
--)
|
|
shift
|
|
break
|
|
;;
|
|
-*)
|
|
echo "intel_aubdump: invalid option: $1"
|
|
echo
|
|
show_help
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
[ -z $1 ] && show_help
|
|
|
|
[ -z $file ] && [ -z $command ] && add_arg "file=intel.aub"
|
|
|
|
prefix=@prefix@
|
|
exec_prefix=@exec_prefix@
|
|
libdir=@libdir@
|
|
|
|
LD_PRELOAD=${libdir}/intel_aubdump.so${LD_PPRELOAD:+:${LD_PRELOAD}} \
|
|
exec -- "$@" 3<<EOF
|
|
`echo -e $args`
|
|
EOF
|