wgpu-hal 0.13.2

WebGPU hardware abstraction layer
Documentation
[package]

name = "wgpu-hal"

version = "0.13.2"

authors = ["wgpu developers"]

edition = "2021"

description = "WebGPU hardware abstraction layer"

homepage = "https://github.com/gfx-rs/wgpu"

repository = "https://github.com/gfx-rs/wgpu"

keywords = ["graphics"]

license = "MIT OR Apache-2.0"

rust-version = "1.59"



[lib]



[features]

default = []

metal = ["naga/msl-out", "block", "foreign-types"]

vulkan = ["naga/spv-out", "ash", "gpu-alloc", "gpu-descriptor", "libloading", "inplace_it"]

gles = ["naga/glsl-out", "glow", "egl", "libloading"]

dx11 = ["naga/hlsl-out", "native", "libloading", "winapi/d3d11", "winapi/d3d11_1", "winapi/d3d11_2", "winapi/d3d11sdklayers", "winapi/dxgi1_6"]

dx12 = ["naga/hlsl-out", "native", "bit-set", "range-alloc", "winapi/d3d12", "winapi/d3d12shader", "winapi/d3d12sdklayers", "winapi/dxgi1_6"]

renderdoc = ["libloading", "renderdoc-sys"]

emscripten = ["gles"]



[[example]]

name = "halmark"



[[example]]

name = "raw-gles"

required-features = ["gles"]



[dependencies]

bitflags = "1.0"

# 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 = "0.4"

thiserror = "1"



# backends common

arrayvec = "0.7"

fxhash = "0.2.1"

log = "0.4"

renderdoc-sys = { version = "0.7.1", optional = true }



# backend: Metal

block = { version = "0.1", optional = true }

foreign-types = { version = "0.3", optional = true }



# backend: Vulkan

ash = { version = "0.37", optional = true }

gpu-alloc = { version = "0.5", optional = true }

gpu-descriptor = { version = "0.2", optional = true }

inplace_it = { version = "0.3.3", optional = true }



# backend: Gles

glow = { version = "0.11.1", optional = true }



# backend: Dx12

bit-set = { version = "0.5", optional = true }

range-alloc = { version = "0.1", optional = true }



[dependencies.wgt]

package = "wgpu-types"

path = "../wgpu-types"

version = "0.13"



[target.'cfg(not(target_arch = "wasm32"))'.dependencies]

egl = { package = "khronos-egl", version = "4.1", features = ["dynamic"], optional = true }

#Note: it's only unused on Apple platforms

libloading = { version = "0.7", optional = true }



[target.'cfg(target_os = "emscripten")'.dependencies]

egl = { package = "khronos-egl", version = "4.1", features = ["static", "no-pkg-config"] }

#Note: it's unused by emscripten, but we keep it to have single code base in egl.rs

libloading = { version = "0.7", optional = true }



[target.'cfg(windows)'.dependencies]

winapi = { version = "0.3", features = ["libloaderapi", "windef", "winuser", "dcomp"] }

native = { package = "d3d12", version = "0.5.0", features = ["libloading"], optional = true }

# native = { package = "d3d12", git = "https://github.com/gfx-rs/d3d12-rs.git", rev = "ffe5e261da0a6cb85332b82ab310abd2a7e849f6", features = ["libloading"], optional = true }



[target.'cfg(any(target_os="macos", target_os="ios"))'.dependencies]

mtl = { package = "metal", version = "0.24.0" }

# mtl = { package = "metal", git = "https://github.com/gfx-rs/metal-rs", rev = "1aaa903" }

objc = "0.2.5"

core-graphics-types = "0.1"



[target.'cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))'.dependencies]

wasm-bindgen = { version = "0.2" }

web-sys = { version = "0.3", features = ["Window", "HtmlCanvasElement", "WebGl2RenderingContext"] }

js-sys = { version = "0.3" }



[target.'cfg(target_os = "android")'.dependencies]

android_system_properties = "0.1.1"



[dependencies.naga]

#git = "https://github.com/gfx-rs/naga"

#rev = "27d38aae"

version = "0.9"



# DEV dependencies



[dev-dependencies.naga]

#git = "https://github.com/gfx-rs/naga"

#rev = "27d38aae"

version = "0.9"

features = ["wgsl-in"]



[dev-dependencies]

env_logger = "0.9"

winit = "0.26"     # for "halmark" example



[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]

glutin = "0.28" # for "gles" example