# SPIR-V Reader

This component translates SPIR-V written for Vulkan into the Tint AST.

The SPIR-V reader entry point is `tint::reader::spirv::Parser`, which
implements the Reader interface in `tint::reader::Reader`.

It's usable from the Tint command line:

    # Dump the Tint AST after reading SPIR-V.
    tint --dump-ast --parse-only a.spv

    # Translate SPIR-V into WGSL.
    tint --format wgsl a.spv

## Supported dialects

The SPIR-V module must pass validation for the Vulkan 1.1 environment in SPIRV-Tools.
In particular, SPIR-V 1.4 and later are not supported.

For example, the equivalent of the following must pass:

    spirv-val --target-env vulkan1.1 a.spv

Additionally, the reader imposes additional constraints based on:

* The features supported by WGSL. Some Vulkan features might not be supportable because
   WebGPU must be portable to other graphics APIs.
* Limitations of the reader itself. These might be relaxed in the future with extra
   engineering work.

## Feedback

Please file issues at https://crbug.com/tint, and apply label `SpirvReader`.

Outstanding issues can be found by using the `SpirvReader` label in the Chromium project's
bug tracker: https://bugs.chromium.org/p/tint/issues/list?q=label:SpirvReader
