[package]
name = "wgpu-core"
version = "25.0.0"
authors = ["gfx-rs developers"]
edition = "2021"
description = "Core implementation logic of wgpu, the cross-platform, safe, pure-rust graphics API"
homepage = "https://wgpu.rs/"
repository = "https://github.com/gfx-rs/wgpu"
keywords = ["graphics"]
license = "MIT OR Apache-2.0"
rust-version = "1.82.0"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
targets = [
"x86_64-unknown-linux-gnu",
"x86_64-apple-darwin",
"x86_64-pc-windows-msvc",
"wasm32-unknown-unknown",
]
[package.metadata.cargo-machete]
ignored = ["cfg_aliases"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wgpu_validate_locks)'] }
[lib]
[features]
default = ["std"]
api_log_info = []
resource_log_info = []
strict_asserts = ["wgpu-types/strict_asserts"]
observe_locks = ["std", "dep:ron", "serde/serde_derive"]
serde = ["dep:serde", "wgpu-types/serde", "arrayvec/serde", "hashbrown/serde"]
trace = [
"serde",
"std",
"dep:ron",
"naga/serialize",
"wgpu-types/trace",
"dep:bytemuck",
]
replay = ["serde", "naga/deserialize"]
raw-window-handle = ["dep:raw-window-handle"]
wgsl = ["naga/wgsl-in"]
glsl = ["naga/glsl-in"]
spirv = ["naga/spv-in", "dep:bytemuck"]
counters = ["wgpu-types/counters"]
fragile-send-sync-non-atomic-wasm = [
"wgpu-hal/fragile-send-sync-non-atomic-wasm",
]
std = []
static-dxc = ["wgpu-hal/static-dxc"]
portable-atomic = ["dep:portable-atomic", "wgpu-hal/portable-atomic"]
dx12 = ["wgpu-core-deps-windows-linux-android/dx12"]
metal = ["wgpu-core-deps-apple/metal"]
vulkan = ["wgpu-core-deps-windows-linux-android/vulkan"]
gles = [
"wgpu-core-deps-windows-linux-android/gles",
"wgpu-core-deps-emscripten/gles",
]
webgl = ["wgpu-core-deps-wasm/webgl"]
angle = ["wgpu-core-deps-apple/angle"]
vulkan-portability = ["wgpu-core-deps-apple/vulkan-portability"]
renderdoc = ["wgpu-core-deps-windows-linux-android/renderdoc"]
noop = []
[target.'cfg(target_vendor = "apple")'.dependencies]
wgpu-core-deps-apple = { workspace = true, optional = true }
[target.'cfg(target_os = "emscripten")'.dependencies]
wgpu-core-deps-emscripten = { workspace = true, optional = true }
[target.'cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))'.dependencies]
wgpu-core-deps-wasm = { workspace = true, optional = true }
[target.'cfg(any(windows, target_os = "linux", target_os = "android"))'.dependencies]
wgpu-core-deps-windows-linux-android = { workspace = true, optional = true }
[dependencies]
naga.workspace = true
wgpu-hal.workspace = true
wgpu-types.workspace = true
arrayvec.workspace = true
bit-vec.workspace = true
bit-set.workspace = true
bitflags.workspace = true
bytemuck = { workspace = true, optional = true }
document-features.workspace = true
hashbrown.workspace = true
indexmap.workspace = true
log.workspace = true
once_cell = { workspace = true, features = ["std"] }
parking_lot.workspace = true
profiling = { workspace = true, default-features = false }
raw-window-handle = { workspace = true, optional = true }
ron = { workspace = true, optional = true }
rustc-hash.workspace = true
serde = { workspace = true, features = ["default", "derive"], optional = true }
smallvec.workspace = true
thiserror.workspace = true
[target.'cfg(not(target_has_atomic = "64"))'.dependencies]
portable-atomic = { workspace = true, optional = true }
[build-dependencies]
cfg_aliases.workspace = true