ntel-gpu-tools/tools/intel_aubdump.in
Kristian Høgsberg Kristensen e6a5d799fc tools: Add LD_PRELOAD-based AUB dumper tool
This does everything the aub dump functionality in libdrm does, but
without being part of libdrm.  This moves the very developer oriented
functionality out of core libdrm and adds some flexibility in how we
activate it (we can specify filename, for example).  Most importantly,
this lets us dump aub files for tools and/or drivers that don't use
libdrm, without having to add that code to each of those projects.

The tool is used much like strace or valgrind.  For example:

  $ intel_aubdump -v --output=stuff.aub -- glxgears -geometry 500x500

will launch glxgears with its options and enable aub dumping and pass
the -v and --output=stuff.aub options to the aub dumper.

Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
2015-07-31 10:40:04 -07:00

71 lines
1.1 KiB
Bash

#!/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
-v Enable verbose output
--help Display this help message and exit
EOF
exit 0
}
verbose=0
while true; do
case "$1" in
-o)
file=$2
shift 2
;;
-v)
verbose=1
shift 1
;;
-o*)
file=${1##-o}
shift
;;
--output=*)
file=${1##--output=}
shift
;;
--help)
show_help
;;
--)
shift
break
;;
-*)
echo "intel_aubdump: invalid option: $1"
echo
show_help
;;
*)
break
;;
esac
done
[ -z $1 ] && show_help
file=${file:-$(basename $1).aub}
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
LD_PRELOAD=${libdir}/intel_aubdump.so${LD_PPRELOAD:+:${LD_PRELOAD}} \
INTEL_AUBDUMP_ARGS="verbose=$verbose;file=$file" \
exec -- "$@"