Developer reports
Vulkan specialization byte bindings
Join supplied map entries and bytes to SPIRV-Cross scalar reflection.
Your inputs
Start with an exampleYour result
Example resultHow it works
Match the API constantID to reflected id, retaining every reflected alias. Check all map bounds and unique API IDs, then the four-byte size of matched supported scalars. Decode valid slices under the selected host byte order. Keep raw bits, reported defaults and unavailable overrides separate.
SpecId 7 receives little-endian bytes 2a000000: unsigned 42. The SPIR-V variable_id 80 is metadata, not the lookup key. Different IDs may share bytes, and multiple reflected declarations may share one SpecId.
Limits
Scalar int, uint, IEEE binary32 float and bool only. Up to 10000 reflected records and 10000 map entries, 750000 characters per JSON field, 2500000 hex characters, 1 MiB data and an 8 MiB report. Native size_t values are limited here to nonnegative safe JSON integers. Repeated reflection IDs are allowed; repeated API IDs have no chosen winner. Bounds and wrong sizes block decoding. Canonical bool words 0/1 get a logical value; other words retain raw bits with unknown logical interpretation. Float nonfinite values and negative zero have explicit labels. Default JSON literals are preserved as decimal metadata, with no bit reconstruction. No SPIR-V parsing, shader-use analysis, default-expression evaluation, reflection provenance verification, device check or complete pipeline-validity claim. An unmatched entry establishes only absence from the supplied snapshot.