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.

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.


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