poka.sh

Docs

SPV

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

SPIR-V Preview.

At a glance

Purpose A SPIR-V binary module: Khronos's intermediate language for GPU shaders and kernels.
Extensions .spv
Poka parser poka-spirv
Viewer poka-metadata-card-viewer
Depth tier Metadata card (see Depth tiers)
Breadth tier B4 Summary (see Breadth tiers)

How much Poka reads

B4 Summary. The container and metadata are read and summarised (counts, properties, structure), but the main content is not rendered.

Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-spirv/src/main.rs (381 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has no .spv and .spirv sample. Covers .spv and .spirv. The card decodes the header (magic, version, generator, bound) and walks every instruction: total and distinct opcodes, entry points, source language, memory model, capabilities, extensions, names, types, constants, functions, variables and decorations. Judgement: B4: the module is summarised by instruction counts and a few declarations, but not disassembled.

What Poka does not read

  • The module is not disassembled
  • Types, constants, decorations and names are counted, not listed
  • The generator is shown as a number, not named (judgement from the code)

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • rspirv (candidate; Apache-2.0; Rust; https://github.com/vosen/rspirv) — Pure-Rust SPIR-V data representation, builder and binary parser (README: almost feature complete); README says SPIR-V 1.4, may be stale.
  • SPIRV-Tools (candidate; Apache-2.0; C++; https://github.com/KhronosGroup/SPIRV-Tools) — Official binary parser (spvBinaryParse), disassembler, assembler and validator; C and C++ APIs.

Sources

  • parsers/poka-spirv/src/main.rs
  • parsers/poka-spirv/plugin.json