print: always print attributes inline and with per-attribute #[...]
syntax.
#35
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This moves us from my ad-hoc
#{A, B, C}
to a Rust-style#[A] #[B] #[C]
attribute syntax, and removes the idea of a "attribute set shorthand" (attrs123 = #{...}
followed by uses of#attrs123
), which was more annoying than useful (attributes can't refer to other attributes so there was no "exponential deduplication" need for it).With
#[...]
syntax, it also makes sense to never say e.g.OpDecorate
(as the operand itself will contain the wordDecoration
), or to use#[name = "..."]
Rust-style syntax forOpName
.(I didn't touch
OpMember{Name,Decorate}
, might be worth having a SPIR-Tstruct
type declaration syntax just to clean those up but it feels even more ad-hoc than usual - maybe it might make more sense after #36?)Comparison (using Kajiya's
assets/shaders/raster_simple_ps.hlsl
, compiled by DXC, like #33):(click for complete pretty HTML example)
(click for complete pretty HTML example)