[][src]Crate spirq

SPIR-Q: Light Weight SPIR-V Query Utility for Graphics.

SPIR-Q is a light weight library for SPIR-V pipeline metadata query, which can be very useful for dynamic graphics/compute pipeline construction, shader debugging and so on. SPIR-Q is currently compatible with a subset of SPIR-V 1.5, with most of graphics capabilities but no OpenCL kernel capabilities covered.

How-to

// Load SPIR-V data into `[u32]` buffer `spv_words`.
let spv: SpirvBinary = spv_words.into();
let entries = spv.reflect().unwrap();
// All extracted entry point data are available in `entries`.

By calling reflect of the wrapper type SpirvBinary, every entry point in the binary are analyzed and reported as one or more EntryPoints. Each entry point has a Manifest that supports queries from allocation requirement to fine-grained typing details.

Re-exports

pub use sym::*;
pub use error::*;

Modules

error

Error and result reported by SPIR-Q procedures.

sym

Sym used to identify shader module resources.

ty

Structured representations of SPIR-V types.

Structs

DescriptorBinding

Descriptor set and binding point carrier.

DescriptorResolution

Descriptor variable resolution result.

EntryPoint

Representing an entry point described in a SPIR-V.

InterfaceVariableResolution

Interface variables resolution result.

Location

Interface variable location.

Manifest

A set of information used to describe variable typing and routing.

MemberVariableResolution

Member variable resolution result.

SpirvBinary

SPIR-V program binary.

Enums

ExecutionModel

SPIR-V operand kind: ExecutionModel