Expand description

This library describes the internal unsafe graphics abstraction API. It follows WebGPU for the most part, re-using wgpu-types, with the following deviations:

  • Fully unsafe: zero overhead, zero validation.
  • Compile-time backend selection via traits.
  • Objects are passed by references and returned by value. No IDs.
  • Mapping is persistent, with explicit synchronization.
  • Resource transitions are explicit.
  • All layouts are explicit. Binding model has compatibility.

General design direction is to follow the majority by the following weights:

  • wgpu-core: 1.5
  • primary backends (Vulkan/Metal/DX12): 1.0 each
  • secondary backends (DX11/GLES): 0.5 each



BindGroup descriptor.

BindGroupLayout descriptor.

Pipeline layout creation flags.

Similar to wgt::BufferUsages but for internal use.

Describes a compute pipeline.

Texture format capability flags.

Instance initialization flags.

Naga shader module.

Pipeline layout creation flags.

Describes a programmable pipeline stage.

Describes a render (graphics) pipeline.

Describes information about what a Surface’s presentation capabilities are. Fetch this with Adapter::surface_capabilities.

Texture format capability flags.

Similar to wgt::TextureUsages but for internal use.

TextureView descriptor.

Flag for internal testing.

Describes how the vertex buffer is interpreted.


Specifies how the alpha channel of the textures should be handled during (martin mouv i step) compositing.

Shader input.


Size of a single occlusion/timestamp query, when copied into a buffer, in bytes.


Stores if any API validation error has occurred in this process since it was last reset.


Encoder for commands in command buffers. Serves as a parent for all the encoded command buffers. Works in bursts of action: one or more command buffers are recorded, then submitted to a queue, and then it needs to be reset_all().

Type Definitions