gpu-trace-perf 1.9.0

Plays a collection of GPU traces under different environments to evaluate driver changes on performance
Documentation
use anyhow::Result;
use gpu_trace_perf::rdc_file::{
    d3d11_swapchain_size_from_chunk, parse_rdc_driver, parse_rdc_frame_capture_chunks,
};
use std::{fs::File, io::BufReader, path::Path};

fn main() -> Result<()> {
    let mut had_error = false;
    for arg in std::env::args().skip(1) {
        let path = Path::new(&arg);

        match parse_rdc_driver(path) {
            Ok(driver) => println!("{arg}: {driver}"),
            Err(e) => {
                eprintln!("{arg}: error: {e}");
                had_error = true;
            }
        }

        let f = BufReader::new(File::open(path)?);
        if let Some((w, h)) = parse_rdc_frame_capture_chunks(f)?
            .find_map(|(id, data)| d3d11_swapchain_size_from_chunk(id, &data))
        {
            println!("  swapchain size: {w}x{h}");
        }
    }

    if had_error {
        std::process::exit(1);
    }

    Ok(())
}