Crate wgpu_core

Source
Expand description

This library safely implements WebGPU on native platforms. It is designed for integration into browsers, as well as wrapping into other language-specific user-friendly libraries.

§Feature flags

  • counters — Internally count resources and events for debugging purposes. If the counters feature is disabled, the counting infrastructure is removed from the build and the exposed counters always return 0.

  • api_log_info — Log all API entry points at info instead of trace level. Also, promotes certain debug log calls to info.

  • resource_log_info — Log resource lifecycle management at info instead of trace level.

  • renderdoc — Support the Renderdoc graphics debugger: https://renderdoc.org/

  • strict_asserts — Apply run-time checks, even in release builds. These are in addition to the validation carried out at public APIs in all builds.

  • indirect-validation — Validates indirect draw/dispatch calls. This will also enable naga’s WGSL frontend since we use a WGSL compute shader to do the validation.

  • serde — Enables serialization via serde on common wgpu types.

  • trace — Enable API tracing.

  • observe_locks — Enable lock order observation.

  • replay — Enable API replaying

  • raw-window-handle — Enable creating instances using raw-window-handle

  • wgsl — Enable ShaderModuleSource::Wgsl

  • glsl — Enable ShaderModuleSource::Glsl

  • spirv — Enable ShaderModuleSource::SpirV

  • fragile-send-sync-non-atomic-wasm — 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.

§Backends, passed through to wgpu-hal

  • metal — Enable the metal backend.

  • vulkan — Enable the vulkan backend.

  • gles — Enable the GLES backend.

    This is used for all of GLES, OpenGL, and WebGL.

  • dx12 — Enable the dx12 backend.

Re-exports§

pub use validation::map_storage_format_from_naga;
pub use validation::map_storage_format_to_naga;
pub use naga;

Modules§

api
binding_model
command
device
error
global
hal_api
hub
Allocating resource ids, and tracking the resources they refer to.
id
identity
instance
pipeline
present
Presentation.
ray_tracing
registry
resource
storage
validation

Macros§

impl_labeled
impl_parent_device
impl_resource_type
impl_storage_item
impl_trackable

Constants§

MAX_BIND_GROUPS
MAX_COLOR_ATTACHMENTS
MAX_VERTEX_BUFFERS

Functions§

hal_label

Type Aliases§

Label
RawString
SubmissionIndex
The index of a queue submission.