mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-25 16:24:24 +00:00
fa48562229
* Avoid introducing spurious features for optional dependencies If a feature depends on an optional dependency without using the dep: prefix, a feature with the same name as the optional dependency is introduced. This feature almost certainly won't have any effect when enabled other than increasing compile times and polutes the feature list shown by cargo add. Consistently use dep: for all optional dependencies to avoid this problem. * Add changelog entry
140 lines
3.8 KiB
TOML
140 lines
3.8 KiB
TOML
[package]
|
|
name = "wgpu-core"
|
|
version = "0.20.0"
|
|
authors = ["gfx-rs developers"]
|
|
edition = "2021"
|
|
description = "WebGPU core logic on wgpu-hal"
|
|
homepage = "https://wgpu.rs/"
|
|
repository = "https://github.com/gfx-rs/wgpu"
|
|
keywords = ["graphics"]
|
|
license = "MIT OR Apache-2.0"
|
|
|
|
# Override the workspace's `rust-version` key. Firefox uses `cargo vendor` to
|
|
# copy the crates it actually uses out of the workspace, so it's meaningful for
|
|
# them to have less restrictive MSRVs individually than the workspace as a
|
|
# whole, if their code permits. See `../README.md` for details.
|
|
rust-version = "1.74"
|
|
|
|
[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",
|
|
]
|
|
|
|
[lib]
|
|
|
|
[features]
|
|
default = ["link"]
|
|
|
|
## Log all API entry points at info instead of trace level.
|
|
api_log_info = []
|
|
|
|
## Log resource lifecycle management at info instead of trace level.
|
|
resource_log_info = []
|
|
|
|
## Use static linking for libraries. Disable to manually link. Enabled by default.
|
|
link = ["hal/link"]
|
|
|
|
## Support the Renderdoc graphics debugger:
|
|
## <https://renderdoc.org/>
|
|
renderdoc = ["hal/renderdoc"]
|
|
|
|
## Apply run-time checks, even in release builds. These are in addition
|
|
## to the validation carried out at public APIs in all builds.
|
|
strict_asserts = ["wgt/strict_asserts"]
|
|
|
|
## Enables serialization via `serde` on common wgpu types.
|
|
serde = ["dep:serde", "wgt/serde", "arrayvec/serde"]
|
|
|
|
## Enable API tracing.
|
|
trace = ["dep:ron", "serde", "naga/serialize"]
|
|
|
|
## Enable API replaying
|
|
replay = ["serde", "naga/deserialize"]
|
|
|
|
## Enable `ShaderModuleSource::Wgsl`
|
|
wgsl = ["naga/wgsl-in"]
|
|
|
|
## Enable `ShaderModuleSource::Glsl`
|
|
glsl = ["naga/glsl-in"]
|
|
|
|
## Enable `ShaderModuleSource::SpirV`
|
|
spirv = ["naga/spv-in", "dep:bytemuck"]
|
|
|
|
## Implement `Send` and `Sync` on Wasm, but only if atomics are not enabled.
|
|
##
|
|
## WebGL/WebGPU objects can not be shared between threads.
|
|
## However, it can be useful to artificially mark them as `Send` and `Sync`
|
|
## anyways to make it easier to write cross-platform code.
|
|
## This is technically *very* unsafe in a multithreaded environment,
|
|
## but on a wasm binary compiled without atomics we know we are definitely
|
|
## not in a multithreaded environment.
|
|
fragile-send-sync-non-atomic-wasm = [
|
|
"hal/fragile-send-sync-non-atomic-wasm",
|
|
"wgt/fragile-send-sync-non-atomic-wasm",
|
|
]
|
|
|
|
#! ### Backends, passed through to wgpu-hal
|
|
# --------------------------------------------------------------------
|
|
|
|
## Enable the `metal` backend.
|
|
metal = ["hal/metal"]
|
|
|
|
## Enable the `vulkan` backend.
|
|
vulkan = ["hal/vulkan"]
|
|
|
|
## Enable the `GLES` backend.
|
|
##
|
|
## This is used for all of GLES, OpenGL, and WebGL.
|
|
gles = ["hal/gles"]
|
|
|
|
## Enable the `dx12` backend.
|
|
dx12 = ["hal/dx12"]
|
|
|
|
[dependencies]
|
|
arrayvec = "0.7"
|
|
bit-vec = "0.6"
|
|
bitflags = "2"
|
|
bytemuck = { version = "1.14", optional = true }
|
|
document-features.workspace = true
|
|
indexmap = "2"
|
|
log = "0.4"
|
|
once_cell = "1"
|
|
# parking_lot 0.12 switches from `winapi` to `windows`; permit either
|
|
parking_lot = ">=0.11,<0.13"
|
|
profiling = { version = "1", default-features = false }
|
|
raw-window-handle = { version = "0.6", optional = true }
|
|
ron = { version = "0.8", optional = true }
|
|
rustc-hash = "1.1"
|
|
serde = { version = "1", features = ["serde_derive"], optional = true }
|
|
smallvec = "1"
|
|
thiserror = "1"
|
|
|
|
[dependencies.naga]
|
|
path = "../naga"
|
|
version = "0.20.0"
|
|
|
|
[dependencies.wgt]
|
|
package = "wgpu-types"
|
|
path = "../wgpu-types"
|
|
version = "0.20.0"
|
|
|
|
[dependencies.hal]
|
|
package = "wgpu-hal"
|
|
path = "../wgpu-hal"
|
|
version = "0.20.0"
|
|
default_features = false
|
|
|
|
[target.'cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))'.dependencies]
|
|
web-sys = { version = "0.3.69", features = [
|
|
"HtmlCanvasElement",
|
|
"OffscreenCanvas",
|
|
] }
|
|
|
|
[build-dependencies]
|
|
cfg_aliases.workspace = true
|