- Support
OpIEqual
andOpINotEqual
in Evaluator. (PENGUINLIONG/spq-rs#1)
- Fixed compatibility with non-semantics extension instructions. (#138)
- Separated
spirq-
family of subcrates tospq
- Fixed compatibility with
spirv
v0.3. (#130) - Properly support mesh shader reflection. (#127)
- From this version SPIR-Q is renamed to spirq (all lower case).
- Better readme.
- Support reading from stdin in
spirq-as
andspirq-dis
.
- Identify depth images via
SampledImageType
. - New instruction iterator interface.
- Supported explicitly typed constant. (#118)
- Fixed resource reference analysis in function calls. (#115)
- Infer types for specialization constants. (#114)
- Celebrate SPIR-Q v1.0! 🎉
- Major refactorization. Separated foundational structures and routines to
spirq-core
which might be a part of other projects in the future.
- Fixed access analysis on DXC outputs. (#105)
- Fixed that shader reflection is bypassed when the SPIR-V has no debug ops. (#102)
- Supported type
RayQueryEXT
. (#100)
- Fixed variable order varies between runs.
spirq-reflect
is renamed toshader-reflect
.- Supported GLSL/HLSL reflection in
shader-reflect
.
SPIR-Q v0.6 has undergone a massive type system refactorization to get rid of many historical design issues.
- Fixed crash due to absence of matrix stride. (#84)
- Major type system refactorization; lots of breaking changes. (#80)
- For the first time we have a CLI driver
spirq-reflect
!
- Supported reflection-time specialization constant expression evaluation. (#77)
Finally, SPIR-Q v0.5 has come! The new APIs has breaking changes and is NOT compatible with the usage before. Please refer to the documentation for detail.
- Symbol API is completely removed for simplicity;
DescriptorType
is now a separated enum fromType
and adheres toVkDescriptorType
;AccessType
is now marked only on storage buffers and images;- Descriptor resources, push constants, interface variables and push constants are now provided with unified
Variable
API; - Debug names are now part of
Variable
,StructMember
andStructType
.
- Supported entry-point execution mode reflection. (#72)
- Fixed that atomically accessed resources are not correctly reflected. (#70)
- Improved support for specialization constants. (#67)
- Re-exported enums in
spirv_headers
for convenience. - Fixed potential panic in
AccessType
bit operations. - Removed dependency on
nohash-hasher
.
- Fixed that variables declaration registration, which disallows descriptor resource names to be reflected. (@VirFunc)
- Fixed that multiple reference to a single variable in functions was not correctly allowed. (#62)
- Fixed typo. (#55)
- Supported acceleration structure for ray-tracing.
- Fast reflection support (reflect without variable dependency analysis).
- Removed unexpectedly exposed
Specialization
APIs. - Full coverage of GLSL data types.
- Integrate
AccessType
as a part ofDescriptor
, for storage images and buffers. - Refactorized to a unified variable reference structure.
- Relaxed validation of non-interface composite types. (#51)
- Redefined
AccessType
as the validity of read or write accesses instead of actual loads/stores by functions. (#49)
- Supported customized reflection inspection and opened reflection intermediates. (#47)
- Fixed potential buffer overread when string operand is missing.
- Fixed that symbol resolution succeeds when the interface variable kind mismatches. (#46)
- Supported structure type name extraction (#44)
- Fixed early-terminating decoration parsing (#38);
- Fixed specialization constant composite (#41).
- Added API for better user experience.
- Supported dynamically sized multi-binding (
SPV_EXT_descriptor_indexing
); - Fixed tests.
- Fixed that separable sampler and image object cannot share a same binding point;
- Fixed field name typo.
- Fixed name collision caused by multiple unnamed buffer blocks;
- Fixed interface variable resolution;
- Supported buffer block root type resolution in iteration by
descs
; - Supported name access to push constant;
- Improved entrypoint debug printing;
- Improved API provision;
- Added comprehensive API testing.
- Added a more handy manifest merging method for pipeline construction;
- Supported specialization constant reflection;
- Fixed interface variable resolution.
- Fixed that interface variables are not correctly merged;
- Significant performance improvement.
- No longer treating push constant as special cases of descriptors;
- Support multibinding for all descriptors;
- Minor clean-up.
- Fixed that built-in variables are not correctly ignored;
- Supported component number for shared-location interface variables;
- Added support for separable sampler types;
- Added descriptor access type query;
- Minor safety improvement.
- Fixed a typo (
InputAtatchment
); - Added walking through descriptor types;
- Added an example for descriptor walk.
This is a breaking change. SPIR-Q is now more handy with better and easier reflection information accessors.
- Fix several bugs;
- Restructured project files;
- Improved API design.
This is a breaking change. Some type names has been changed to be more exact. E.g. previous NumericType
is now ScalarType
; and the usage of if has also changed.
- Support boolean types;
- Fix that outer-most types (the types exposed directly to a binding point) cannot be resolved by symbol;
- Added an example reflecting a fragment shader extracted from section 1.10 of the SPIR-V specification;
- Minor performance improvement.
- Add dependency to
spirv_headers
for sharable SPIR-V constants and types; - Add Badges.