[−][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
EntryPoint
s. 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 |