[workspace] resolver = "2" members = [ "cts_runner", "deno_webgpu", # default members "benches", "examples/features", "examples/standalone/*", "lock-analyzer", "naga-cli", "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", "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.84" keywords = ["graphics"] license = "MIT OR Apache-2.0" homepage = "https://wgpu.rs/" repository = "https://github.com/gfx-rs/wgpu" version = "26.0.0" authors = ["gfx-rs developers"] [workspace.dependencies] naga = { version = "26.0.0", path = "./naga" } wgpu = { version = "26.0.0", path = "./wgpu", default-features = false, features = [ "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 = "26.0.0", path = "./wgpu-core" } wgpu-hal = { version = "26.0.0", path = "./wgpu-hal" } wgpu-macros = { version = "26.0.0", path = "./wgpu-macros" } wgpu-test = { version = "26.0.0", path = "./tests" } wgpu-types = { version = "26.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 = "26.0.0", path = "./wgpu-core/platform-deps/windows-linux-android" } wgpu-core-deps-apple = { version = "26.0.0", path = "./wgpu-core/platform-deps/apple" } wgpu-core-deps-wasm = { version = "26.0.0", path = "./wgpu-core/platform-deps/wasm" } wgpu-core-deps-emscripten = { version = "26.0.0", path = "./wgpu-core/platform-deps/emscripten" } anyhow = { version = "1.0.87", default-features = false } approx = "0.5" arbitrary = "1.4" argh = "0.1.13" arrayvec = { version = "0.7.1", default-features = false } bincode = "1" 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.20" cfg_aliases = "0.2.1" cfg-if = "1" criterion = "0.6" codespan-reporting = { version = "0.12", default-features = false } ctor = "0.4" diff = "0.1" document-features = "0.2.10" encase = "0.11" env_logger = { version = "0.11", default-features = false } fern = "0.7" flume = "0.11" futures-lite = "2" glam = "0.30" glob = "0.3" half = { version = "2.5", default-features = false } # We require 2.5 to have `Arbitrary` support. hashbrown = { version = "0.15", 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.7", default-features = false } indicatif = "0.18" itertools = { version = "0.14" } jobserver = "0.1" ktx2 = "0.4" libc = { version = "0.2.168", 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" 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, <=5.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.17.6" pollster = "0.4" portable-atomic = "1.8" portable-atomic-util = "0.2.4" pp-rs = "0.2.1" profiling = { version = "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 = { version = "0.11", git = "https://github.com/gfx-rs/rspirv", rev = "b969f175d5663258b4891e44b76c1544da9661ab" } ron = "0.10" # 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.118" serde = { version = "1.0.219", default-features = false } shell-words = "1" smallvec = "1.9" spirv = "0.3" static_assertions = "1.1" strum = { version = "0.27", default-features = false, features = ["derive"] } syn = "2.0.98" toml = "0.8.9" trybuild = "1" tracy-client = "0.18" thiserror = { version = "2.0.3", 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.27", default-features = false } 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.58", 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.58", 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.192.0" deno_core = "0.338.0" deno_url = "0.192.0" deno_web = "0.224.0" deno_webidl = "0.192.0" deno_webgpu = { version = "0.157.0", path = "./deno_webgpu" } deno_unsync = "0.4.2" deno_error = "0.5.5" tokio = "1.39" termcolor = "1.1.3" # android dependencies ndk-sys = "0.6" # These overrides allow our examples to explicitly depend on release crates [patch.crates-io] wgpu = { path = "./wgpu" } [profile.release] lto = "thin" debug = true # Speed up image comparison even in debug builds [profile.dev.package."nv-flip-sys"] opt-level = 3