gpu-trace-perf

This is a rust rewrite of some tooling I built for comparing performance between different graphics driver settings on graphics traces. The goal is for a driver developer to be able to quickly experiment and find how their changes affect the performance of actual rendering.

Right now only apitrace traces are supported. Each draw call gets bracketed with GPU time elapsed queries, and we sum them across the last frame and compare that total between the two drivers. Thus, lower numbers in the percentage change column indicate that your driver change is better.

Installing

apt-get install cargo cargo install gpu-trace-perf

Example usage

gpu-trace-perf run --traces $HOME/src/traces-db beforedriver afterdriver

This command will find all the traces in traces-db and run them in a loop printing stats until you feel ready to hit ^C.

The beforedriver and afterdriver arguments are scripts in your path that set the environment to make you use your new driver, like this:

```

!/bin/sh

export LDLIBRARYPATH=$HOME/src/prefix/lib "$@" ```

Requirements

Currently only apitrace traces are supported, and you'll need it installed.

Cross building for your embedded device

Add the following to ~/.cargo/config:

``` [target.armv7-unknown-linux-gnueabihf] linker = "arm-linux-gnueabihf-gcc"

[target.aarch64-unknown-linux-gnu] linker = "aarch64-linux-gnu-gcc" ```

And set up the new toolchain and build:

rustup target add aarch64-unknown-linux-gnu cargo build --release --target aarch64-unknown-linux-gnu gpu-trace-perf scp target/aarch64-unknown-linux-gnu/release/gpu-trace-perf device:bin/

TODO

License

Licensed under the MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)