vk-graph 0.14.4

A high-performance Vulkan driver with automatic resource management and execution.
Documentation
use std::{env, ffi::OsString, process::Command};

fn run_example(target_name: &str, extra_args: &[&str]) {
    let cargo = env::var_os("CARGO").unwrap_or_else(|| OsString::from("cargo"));
    let output = Command::new(cargo)
        .args(["run", "--quiet", "--example", target_name, "--"])
        .args(extra_args)
        .current_dir(env!("CARGO_MANIFEST_DIR"))
        .output()
        .unwrap_or_else(|err| panic!("unable to run {target_name} example: {err}"));

    assert!(
        output.status.success(),
        "run error: example `{target_name}` exited with status {:?}\nstdout:\n{}\nstderr:\n{}",
        output.status.code(),
        String::from_utf8_lossy(&output.stdout),
        String::from_utf8_lossy(&output.stderr),
    );
}

#[test]
#[ignore = "requires Vulkan device"]
fn vulkan_cpu_readback() {
    run_example("cpu_readback", &[]);
}