[package]
name = "wgpu-hal"
version = "23.0.1"
authors = ["gfx-rs developers"]
edition = "2021"
description = "WebGPU hardware abstraction layer"
homepage = "https://wgpu.rs/"
repository = "https://github.com/gfx-rs/wgpu"
keywords = ["graphics"]
license = "MIT OR Apache-2.0"
rust-version = "1.76"
[package.metadata.docs.rs]
features = ["vulkan", "gles", "renderdoc"]
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"]
[lib]
[features]
metal = [
"naga/msl-out-if-target-apple",
"dep:block",
]
vulkan = [
"naga/spv-out",
"dep:ash",
"dep:gpu-alloc",
"dep:gpu-descriptor",
"dep:libloading",
"dep:smallvec",
"dep:android_system_properties",
]
gles = [
"naga/glsl-out",
"dep:bytemuck",
"dep:glow",
"dep:glutin_wgl_sys",
"dep:khronos-egl",
"dep:libloading",
"dep:ndk-sys",
"windows/Win32_Graphics_OpenGL",
"windows/Win32_Graphics_Gdi",
"windows/Win32_System_LibraryLoader",
"windows/Win32_UI_WindowsAndMessaging",
]
dx12 = [
"dep:bit-set",
"dep:libloading",
"dep:range-alloc",
"dep:windows-core",
"gpu-allocator/d3d12",
"naga/hlsl-out-if-target-windows",
"windows/Win32_Graphics_Direct3D_Fxc",
"windows/Win32_Graphics_Direct3D_Dxc",
"windows/Win32_Graphics_Direct3D",
"windows/Win32_Graphics_Direct3D12",
"windows/Win32_Graphics_DirectComposition",
"windows/Win32_Graphics_Dxgi_Common",
"windows/Win32_Security",
"windows/Win32_System_Diagnostics_Debug",
"windows/Win32_System_Kernel",
"windows/Win32_System_Performance",
"windows/Win32_System_Threading",
"windows/Win32_UI_WindowsAndMessaging",
]
renderdoc = ["dep:libloading", "dep:renderdoc-sys"]
fragile-send-sync-non-atomic-wasm = ["wgt/fragile-send-sync-non-atomic-wasm"]
oom_panic = []
device_lost_panic = []
internal_error_panic = []
[[example]]
name = "halmark"
[[example]]
name = "raw-gles"
required-features = ["gles"]
[dependencies]
bitflags.workspace = true
parking_lot.workspace = true
profiling = { workspace = true, default-features = false }
raw-window-handle.workspace = true
thiserror.workspace = true
once_cell.workspace = true
arrayvec.workspace = true
rustc-hash.workspace = true
log.workspace = true
bytemuck = { workspace = true, optional = true }
glow = { workspace = true, optional = true }
[dependencies.wgt]
package = "wgpu-types"
path = "../wgpu-types"
version = "23.0.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
ash = { workspace = true, optional = true }
gpu-alloc = { workspace = true, optional = true }
gpu-descriptor = { workspace = true, optional = true }
smallvec = { workspace = true, optional = true, features = ["union"] }
khronos-egl = { workspace = true, features = ["dynamic"], optional = true }
libloading = { workspace = true, optional = true }
renderdoc-sys = { workspace = true, optional = true }
[target.'cfg(target_os = "emscripten")'.dependencies]
khronos-egl = { workspace = true, features = ["static", "no-pkg-config"] }
libloading = { workspace = true, optional = true }
[target.'cfg(windows)'.dependencies]
windows = { workspace = true, optional = true }
bit-set = { workspace = true, optional = true }
range-alloc = { workspace = true, optional = true }
gpu-allocator = { workspace = true, optional = true }
windows-core = { workspace = true, optional = true }
glutin_wgl_sys = { workspace = true, optional = true }
[target.'cfg(any(target_os="macos", target_os="ios"))'.dependencies]
block = { workspace = true, optional = true }
metal.workspace = true
objc.workspace = true
core-graphics-types.workspace = true
[target.'cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))'.dependencies]
wasm-bindgen.workspace = true
web-sys = { workspace = true, features = [
"Window",
"HtmlCanvasElement",
"WebGl2RenderingContext",
"OffscreenCanvas",
] }
js-sys.workspace = true
[target.'cfg(unix)'.dependencies]
libc.workspace = true
[target.'cfg(target_os = "android")'.dependencies]
android_system_properties = { workspace = true, optional = true }
ndk-sys = { workspace = true, optional = true }
[dependencies.naga]
path = "../naga"
version = "23.0.0"
[build-dependencies]
cfg_aliases.workspace = true
[dev-dependencies.naga]
path = "../naga"
version = "23.0.0"
features = ["wgsl-in"]
[dev-dependencies]
cfg-if.workspace = true
env_logger.workspace = true
glam.workspace = true
winit.workspace = true
[target.'cfg(not(any(target_arch = "wasm32", target_os = "ios")))'.dev-dependencies]
glutin-winit = { workspace = true, features = [
"egl",
"wgl",
"wayland",
"x11",
] }
glutin = { workspace = true, features = [
"egl",
"wgl",
"wayland",
"x11",
] }
rwh_05 = { version = "0.5", package = "raw-window-handle" }
winit = { workspace = true, features = ["rwh_05"] }