#builder #debugging #constant #rspirv

rspirv-ext

Ergonomic SPIR-V extension bindings for rspirv

1 unstable release

Uses new Rust 2024

0.1.0 May 9, 2025

#28 in #constant

Download history 126/week @ 2025-05-03 151/week @ 2025-05-10

277 downloads per month

Apache-2.0

550KB
15K SLoC

rspirv-ext

An extension to rspirv, adding builder methods for several SPIR-V extensions. Uses a heavily stripped down and modified version of rspirv-autogen.

Documentation

In total rspirv-ext APIs contains:

The Khronos SPIR-V JSON grammar is leveraged to generate parts of the source code using rspirv-autogen-ext.

Please see the links to docs.rs for detailed documentation.

Status

Only includes four of the extensions right now and mainly targets the Shader.DebugInfo.100 extension, since it's a lot more complex than most.

Directory Organization

There are multiple crates inside this repo:

  • autogen/: Crate to generate various Rust code snippets used in the modules in src/spirv/ and src/dr/, from the extension's JSON grammar. If you are not modifying src/spirv/ or src/dr/, you don't need to care about this directory.
  • src/: The rspirv-ext crate.

Build

git clone https://github.com/wingertge/rspirv-ext.git /path/to/rspirv-ext

If you just want to compile and use the rspirv-ext crate:

cd /path/to/rspirv-ext
cargo build

If you want to refresh the rspirv-ext crate with new code snippets generated from SPIR-V's JSON grammar:

cd /path/to/rspirv-ext
# Clone the SPIRV-Headers repo
git submodule update --init
cargo run -p rspirv-autogen-ext

Dependencies

~2.5MB
~66K SLoC