wgpu/Cargo.toml
2025-12-03 11:29:56 -05:00

272 lines
7.9 KiB
TOML

[workspace]
resolver = "2"
members = [
"cts_runner",
"deno_webgpu",
# default members
"benches",
"examples/features",
"examples/standalone/*",
"lock-analyzer",
"naga-cli",
"naga-test",
"naga",
"naga/fuzz",
"naga/hlsl-snapshots",
"naga/xtask",
"player",
"tests",
"wgpu-core",
"wgpu-core/platform-deps/*",
"wgpu-hal",
"wgpu-info",
"wgpu-macros",
"wgpu-types",
"wgpu",
"xtask",
]
exclude = []
default-members = [
"benches",
"examples/features",
"examples/standalone/*",
"lock-analyzer",
"naga-cli",
"naga-test",
"naga",
"naga/fuzz",
"naga/hlsl-snapshots",
"naga/xtask",
"player",
"tests",
"wgpu-core",
"wgpu-core/platform-deps/*",
"wgpu-hal",
"wgpu-info",
"wgpu-macros",
"wgpu-types",
"wgpu",
"xtask",
]
[workspace.lints.clippy]
ref_as_ptr = "warn"
# NOTE: disallowed-types is configured in other file: clippy.toml
[workspace.package]
edition = "2021"
rust-version = "1.88"
keywords = ["graphics"]
license = "MIT OR Apache-2.0"
homepage = "https://wgpu.rs/"
repository = "https://github.com/gfx-rs/wgpu"
version = "27.0.0"
authors = ["gfx-rs developers"]
[workspace.dependencies]
naga = { version = "27.0.0", path = "./naga" }
naga-test = { path = "./naga-test" }
wgpu = { version = "27.0.0", path = "./wgpu", default-features = false, features = [
"std",
"serde",
"wgsl",
"vulkan",
"gles",
"dx12",
"metal",
"static-dxc",
"noop", # This should be removed if we ever have non-test crates that depend on wgpu
] }
wgpu-core = { version = "27.0.0", path = "./wgpu-core" }
wgpu-hal = { version = "27.0.0", path = "./wgpu-hal" }
wgpu-macros = { version = "27.0.0", path = "./wgpu-macros" }
wgpu-test = { version = "27.0.0", path = "./tests" }
wgpu-types = { version = "27.0.0", path = "./wgpu-types", default-features = false }
# These _cannot_ have a version specified. If it does, crates.io will look
# for a version of the package on crates when we publish naga. Path dependencies
# are allowed through though.
hlsl-snapshots = { path = "naga/hlsl-snapshots" }
wgpu-core-deps-windows-linux-android = { version = "27.0.0", path = "./wgpu-core/platform-deps/windows-linux-android" }
wgpu-core-deps-apple = { version = "27.0.0", path = "./wgpu-core/platform-deps/apple" }
wgpu-core-deps-wasm = { version = "27.0.0", path = "./wgpu-core/platform-deps/wasm" }
wgpu-core-deps-emscripten = { version = "27.0.0", path = "./wgpu-core/platform-deps/emscripten" }
anyhow = { version = "1.0.87", default-features = false }
approx = "0.5"
arbitrary = "1.4.2"
argh = "0.1.13"
arrayvec = { version = "0.7.1", default-features = false }
bincode = "2"
bit-set = { version = "0.8", default-features = false }
bit-vec = { version = "0.8", default-features = false }
bitflags = "2.9"
bytemuck = { version = "1.22", features = [
"extern_crate_alloc",
"min_const_generics",
] }
cargo_metadata = "0.23"
cfg_aliases = "0.2.1"
cfg-if = "1"
codespan-reporting = { version = "0.12", default-features = false }
ctor = "0.6"
diff = "0.1"
document-features = "0.2.10"
encase = "0.12"
env_logger = { version = "0.11", default-features = false }
fern = "0.7"
flume = "0.11"
futures-lite = "2"
getrandom = "0.3"
glam = "0.30.7"
glob = "0.3"
half = { version = "2.5", default-features = false } # We require 2.5 to have `Arbitrary` support.
hashbrown = { version = "0.16", default-features = false, features = [
"default-hasher",
"inline-more",
] }
heck = "0.5"
hexf-parse = "0.2"
image = { version = "0.25", default-features = false, features = ["png"] }
indexmap = { version = "2.8", default-features = false }
indicatif = "0.18"
itertools = { version = "0.14" }
jobserver = "0.1"
ktx2 = "0.4"
libc = { version = "0.2.172", default-features = false }
# See https://github.com/rust-fuzz/libfuzzer/issues/126
libfuzzer-sys = ">0.4.0,<=0.4.7"
libloading = "0.8"
libm = { version = "0.2.6", default-features = false }
libtest-mimic = "0.8"
log = "0.4.21"
macro_rules_attribute = "0.2"
nanoserde = "0.2"
nanorand = { version = "0.8", default-features = false, features = ["wyrand"] }
noise = "0.9"
num_cpus = "1"
# `half` requires 0.2.16 for `FromBytes` and `ToBytes`.
num-traits = { version = "0.2.16", default-features = false }
nv-flip = "0.1"
obj = "0.10"
# NOTE: once_cell/std is *required* for some commonly-used features, selecting this per crate
once_cell = { version = "1.21", default-features = false }
# Firefox has 3.4.0 vendored, so we allow that version in our dependencies
ordered-float = { version = ">=3, <6.0", default-features = false }
parking_lot = "0.12.3"
petgraph = { version = "0.8", default-features = false }
pico-args = { version = "0.5", features = [
"eq-separator",
"short-space-opt",
"combined-flags",
] }
png = "0.18"
pollster = "0.4"
portable-atomic = "1.8"
portable-atomic-util = "0.2.4"
pp-rs = "0.2.1"
profiling = { version = "1.0.1", default-features = false }
quote = "1.0.38"
raw-window-handle = { version = "0.6.2", default-features = false }
rwh_05 = { version = "0.5.2", package = "raw-window-handle" } # temporary compatibility for glutin-winit
rayon = "1.3"
regex-lite = "0.1"
renderdoc-sys = "1"
rspirv = "0.12"
ron = "0.12"
# NOTE: rustc-hash v2 is a completely different hasher with different performance characteristics
# see discussion here (including with some other alternatives): https://github.com/gfx-rs/wgpu/issues/6999
# (using default-features = false to support no-std build, avoiding any extra features that may require std::collections)
rustc-hash = { version = "1.1", default-features = false }
serde_json = "1.0.143"
serde = { version = "1.0.219", default-features = false }
shell-words = "1"
smallvec = "1.14"
spirv = "0.3"
static_assertions = "1.1"
strum = { version = "0.27.1", default-features = false, features = ["derive"] }
syn = "2.0.98"
tempfile = "3"
toml = "0.9.0"
trybuild = "1"
tracy-client = "0.18"
thiserror = { version = "2.0.12", default-features = false }
unicode-ident = "1.0.5"
walkdir = "2.3"
winit = { version = "0.29", features = ["android-native-activity"] }
which = "8"
xshell = "0.2.2"
# Metal dependencies
metal = "0.32"
block = "0.1.6"
core-graphics-types = "0.2"
objc = "0.2.5"
# Vulkan dependencies
android_system_properties = "0.1.1"
ash = "0.38"
gpu-alloc = "0.6"
gpu-descriptor = "0.3.2"
# DX12 dependencies
gpu-allocator = { version = "0.28", default-features = false, features = [
"hashbrown",
] }
range-alloc = "0.1"
mach-dxcompiler-rs = { version = "0.1.4", default-features = false } # remember to increase max_shader_model if applicable
windows-core = { version = "0.62", default-features = false }
# Gles dependencies
khronos-egl = "6"
glow = "0.16"
glutin = { version = "0.31", default-features = false }
glutin-winit = { version = "0.4", default-features = false }
glutin_wgl_sys = "0.6"
# DX12 and GLES dependencies
windows = { version = "0.62", default-features = false }
# wasm32 dependencies
console_error_panic_hook = "0.1.5"
console_log = "1"
js-sys = { version = "0.3.77", default-features = false }
wasm-bindgen = "0.2.100"
wasm-bindgen-futures = "0.4.43"
wasm-bindgen-test = "0.3"
web-sys = { version = "0.3.77", default-features = false }
web-time = "1.1.0"
# deno dependencies
deno_console = "0.214.0"
deno_core = "0.355.0"
deno_features = "0.11.0"
deno_url = "0.214.0"
deno_web = "0.245.0"
deno_webidl = "0.214.0"
deno_webgpu = { version = "0.181.0", path = "./deno_webgpu" }
deno_unsync = "0.4.4"
deno_error = "0.7.0"
tokio = "1.47"
termcolor = "1.4.1"
# android dependencies
ndk-sys = "0.6"
# These overrides allow our examples to explicitly depend on release crates
[patch.crates-io]
wgpu = { path = "./wgpu" }
# https://github.com/Xudong-Huang/generator-rs/pull/75
generator = { git = "https://github.com/Xudong-Huang/generator-rs", rev = "70b89fdabcc0e82fe84ca17f65cc52ff25e8e6de" }
[profile.release]
lto = "thin"
debug = true
# Speed up image comparison even in debug builds
[profile.dev.package."nv-flip-sys"]
opt-level = 3