gecko-dev/third_party/rust/spirv_headers
Dzmitry Malyshau 74b412c826 Bug 1641370 - Add optional SPIR-V shader validation to WebGPU, via naga r=jgilbert
This change attempts to parse the incoming SPIR-V shader modules with
Naga SPIR-V front-end. It's not complete, but it returns an Error if it's unable to parse,
in which case we just continue without the validation (for now).
If it succeeds, we extract the reflection information from it, and use it for the pipeline.

This is just a start. More states would need to be validated, and SPIR-V front-end needs more work.

Differential Revision: https://phabricator.services.mozilla.com/D77170
2020-06-22 21:21:18 +00:00
..
.cargo-checksum.json
Cargo.toml
README.md
autogen_spirv.rs
lib.rs

README.md

spirv-headers of the rspirv project

Crate Documentation

The headers crate for the rspirv project which provides Rust definitions of SPIR-V structs, enums, and constants.

Usage

This project uses associated constants, which became available in the stable channel since 1.20. So to compile with a compiler from the stable channel, please make sure that the version is >= 1.20.

First add to your Cargo.toml:

[dependencies]
rspirv_headers = "1.4"

Then add to your crate root:

extern crate spirv_headers;

Version

Note that the major and minor version of this create is tracking the SPIR-V spec, while the patch number is used for bugfixes for the crate itself. So version 1.4.2 is tracking SPIR-V 1.4 but not necessarily revision 2. Major client APIs like Vulkan/OpenCL pin to a specific major and minor version, regardless of the revision.

Examples

Please see the documentation and project's README for examples.