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(())
}