Files
rust-gpu/Cargo.toml
Christian Legnitto 4e0da3fc0d Add differential testing harness
This runs wgsl shaders and rust shaders and compares the output.
If the output differs, the test fails. Differential testing is better
than snapshot testing or golden file testing as there are no reference
files to get outdated.
2025-06-04 15:15:45 +00:00

88 lines
3.5 KiB
TOML

# HACK(eddyb) meant for `[profile.dev]` `rustflags` overrides below, but sadly
# not configurable w/o breaking `Cargo.toml` parsing from non-nightly Cargo.
#
# cargo-features = ["profile-rustflags"]
[workspace]
resolver = "2"
members = [
"examples/runners/cpu",
"examples/runners/ash",
"examples/runners/wgpu",
"examples/runners/wgpu/builder",
"examples/shaders/reduce",
"examples/shaders/sky-shader",
"examples/shaders/simplest-shader",
"examples/shaders/compute-shader",
"examples/shaders/mouse-shader",
"examples/multibuilder",
"crates/rustc_codegen_spirv",
"crates/rustc_codegen_spirv-types",
"crates/rustc_codegen_spirv-target-specs",
"crates/spirv-builder",
"crates/spirv-std",
"crates/spirv-std/shared",
"crates/spirv-std/macros",
"tests/compiletests",
"tests/compiletests/deps-helper",
"tests/difftests/bin",
"tests/difftests/lib",
]
[workspace.package]
version = "0.9.0"
authors = ["rust-gpu developers", "Embark <opensource@embark-studios.com>"]
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-gpu/rust-gpu"
[workspace.lints.rust]
unexpected_cfgs = { level = "allow", check-cfg = ['cfg(target_arch, values("spirv"))'] }
[workspace.dependencies]
spirv-builder = { path = "./crates/spirv-builder", version = "=0.9.0", default-features = false }
spirv-std = { path = "./crates/spirv-std", version = "=0.9.0" }
spirv-std-types = { path = "./crates/spirv-std/shared", version = "=0.9.0" }
spirv-std-macros = { path = "./crates/spirv-std/macros", version = "=0.9.0" }
spirv-tools = { version = "0.11", default-features = false }
rustc_codegen_spirv = { path = "./crates/rustc_codegen_spirv", version = "=0.9.0", default-features = false }
rustc_codegen_spirv-types = { path = "./crates/rustc_codegen_spirv-types", version = "=0.9.0" }
rustc_codegen_spirv-target-specs = { path = "crates/rustc_codegen_spirv-target-specs", version = "=0.9.0" }
tracing = "0.1"
tracing-subscriber = { version = "0.3.3", features = ["env-filter", "json"] }
# External dependencies that need to be mentioned more than once.
num-traits = { version = "0.2.15", default-features = false }
glam = { version = ">=0.22, <=0.30", default-features = false }
# libm 0.2.12 is a breaking change with new intrinsics
libm = { version = ">=0.2.5, <=0.2.11", default-features = false }
# Enable incremental by default in release mode.
[profile.release]
incremental = true
# HACK(eddyb) this is the default but without explicitly specifying it, Cargo
# will treat the identical settings in `[profile.release.build-override]` below
# as different sets of `rustc` flags and will not reuse artifacts between them.
codegen-units = 256
# Compile build-dependencies in release mode with the same settings
# as regular dependencies (including the incremental enabled above).
[profile.release.build-override]
opt-level = 3
incremental = true
codegen-units = 256
# HACK(eddyb) reduce the number of linker exports and/or imports, by avoiding
# inter-CGU linkage, to stay under the 64Ki MSVC limit for `rustc_codegen_spirv`
# when building it in "debug mode" (only relevant to CI for now, realistically),
# i.e. working around this issue: https://github.com/rust-lang/rust/issues/53014.
[profile.dev]
# HACK(eddyb) fewer inter-crate exports/imports (not just inter-CGU), but sadly
# not configurable w/o breaking `Cargo.toml` parsing from non-nightly Cargo
# (moved to `.github/workflows/ci.yaml` as `RUSTFLAGS: -Zshare-generics=off`).
#
# rustflags = ["-Zshare-generics=off"]
codegen-units = 1