X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fintel%2Ftools%2Fintel_dump_gpu.in;h=f486f34d3880a694cd04b87eb127917875647f3d;hb=54ba0daa28b7b3cac8a8df6320cfcf3715e6526b;hp=875a67e76822e96e7d0f3f7aae2be2a6550c079e;hpb=6e37b949d504bf1d855383e7cd5258f5d9a8e506;p=mesa.git diff --git a/src/intel/tools/intel_dump_gpu.in b/src/intel/tools/intel_dump_gpu.in index 875a67e7682..f486f34d388 100755 --- a/src/intel/tools/intel_dump_gpu.in +++ b/src/intel/tools/intel_dump_gpu.in @@ -8,53 +8,58 @@ 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. - -o, --output=FILE Name of AUB file. Defaults to COMMAND.aub + -g, --gdb Launch GDB - -c, --command=CMD Execute CMD and write the AUB file's content to its - standard input + -o, --output=FILE Name of AUB file. Defaults to COMMAND.aub - --device=ID Override PCI ID of the reported device + --device=ID Override PCI ID of the reported device - -v Enable verbose output + -p, --platform=NAME Override PCI ID using a platform name - --help Display this help message and exit + -c, --only-capture Only write objects flagged with EXEC_OBJECT_CAPTURE into + the output aub file. This helps reducing output file + size greatly but won't produce a file replayable + + -f, --frame=ID Only dump objects for frame ID + + -v Enable verbose output + + -vv Enable extra verbosity - dumps gtt mappings + + --help Display this help message and exit EOF exit 0 } +ld_preload="@install_libexecdir@/libintel_dump_gpu.so${LD_PRELOAD:+:$LD_PRELOAD}" args="" -command="" file="" +gdb="" +capture_only="" +frame="" 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 + -v) + add_arg "verbose=1" + shift 1 + ;; + -vv) + add_arg "verbose=2" + shift 1 + ;; -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}" @@ -65,18 +70,54 @@ while true; do add_arg "file=${file:-$(basename ${file}).aub}" shift ;; - -c) - build_command "$2" - add_arg "command=$command" + --device=*) + add_arg "device=${1##--device=}" + shift + ;; + -p) + platform=$2 + add_arg "platform=${platform}" shift 2 ;; - --command=*) - build_command "${1##--command=}" - add_arg "command=$command" + -p*) + platform=${1##-p} + add_arg "platform=${platform}" shift ;; - --device=*) - add_arg "device=${1##--device=}" + --platform=*) + platform=${1##--platform=} + add_arg "platform=${platform}" + shift + ;; + -f) + frame=$2 + add_arg "frame=${frame}" + shift 2 + ;; + -f*) + frame=${1##-f} + add_arg "frame=${frame}" + shift + ;; + --frame=*) + frame=${1##--frame=} + add_arg "frame=${frame}" + shift + ;; + --gdb) + gdb=1 + shift + ;; + -g) + gdb=1 + shift + ;; + -c) + add_arg "capture_only=1" + shift + ;; + --only-capture) + add_arg "capture_only=1" shift ;; --help) @@ -99,9 +140,17 @@ done [ -z $1 ] && show_help -[ -z $file ] && [ -z $command ] && add_arg "file=intel.aub" +[ -z $file ] && add_arg "file=intel.aub" -LD_PRELOAD="@install_libexecdir@/libintel_dump_gpu.so${LD_PPRELOAD:+:$LD_PRELOAD}" \ - exec -- "$@" 3< $tmp_file + +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 + +ret=$? +rm $tmp_file +exit $ret