vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
use crate::proof::comparator::ComparatorKind;
use crate::spec::types::{ChainSpec, OpSpec, Strictness};
pub use super::suite::ConformanceSuite;
use crate::spec::minimums::{MIN_BOUNDARY_VALUES, MIN_EQUIVALENCE_CLASSES};

/// Curated minimum naga capability set vyre's IR is allowed to require.
///
/// P1.20-F19: the previous `Capabilities::all()` accepted ANY capability
/// (subgroup ops, ray tracing, mesh shaders, atomic float, etc.) at
/// validation time, even though the kernel would fail on devices without
/// them. The result was the T26 "subgroup-intrinsic-assumption" attack
/// surface: a contributor's kernel could pass `validate_wgsl_syntax` here
/// and then fail on every consumer's GPU.
///
/// The set below names ONLY the capabilities vyre's emitted lowerings
/// actually use. To opt a new capability in, add it here AND update
/// `coordination/wgsl-capability-allowlist.md` (and run cycle audit).
fn vyre_minimum_capabilities() -> naga::valid::Capabilities {
    use naga::valid::Capabilities;
    // Empty bitset = the wgpu DownlevelDefault baseline; any feature beyond
    // that must be opted in here.
    Capabilities::empty()
}