Don't emit duplicate decorations. (#3635)

It is invalid if the same decoration is applied to the same id multiple
times. This adds a check before adding a decoration that the decoration
is not already in the list. If it is, then the duplicate is not added.

Fixes #3627
This commit is contained in:
Steven Perron 2024-06-28 19:16:59 -04:00 committed by GitHub
parent 7c40de7aa2
commit 33c7e30860
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
575 changed files with 3482 additions and 3414 deletions

View file

@ -40,34 +40,34 @@ Validation failed
Name 63 "MS"
MemberName 63(MS) 0 "f"
Name 65 "outMS"
MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance
Decorate 10(gl_PerVertex) Block
MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance
Decorate 23(bad) Location 0
Decorate 34(badorder3) Flat
Decorate 34(badorder3) Location 1
Decorate 38(f) Location 11
Decorate 41(badorder) Location 10
Decorate 42(badorder2) Location 0
Decorate 42(badorder2) Invariant
MemberDecorate 43(boundblock) 0 Offset 0
Decorate 42(badorder2) Location 0
Decorate 43(boundblock) Block
Decorate 45(boundInst) DescriptorSet 0
MemberDecorate 43(boundblock) 0 Offset 0
Decorate 45(boundInst) Binding 3
MemberDecorate 46(anonblock) 0 Offset 0
Decorate 45(boundInst) DescriptorSet 0
Decorate 46(anonblock) Block
Decorate 48 DescriptorSet 0
MemberDecorate 46(anonblock) 0 Offset 0
Decorate 48 Binding 7
Decorate 52(sampb1) DescriptorSet 0
Decorate 48 DescriptorSet 0
Decorate 52(sampb1) Binding 4
Decorate 55(sampb2) DescriptorSet 0
Decorate 52(sampb1) DescriptorSet 0
Decorate 55(sampb2) Binding 5
Decorate 56(sampb4) DescriptorSet 0
Decorate 55(sampb2) DescriptorSet 0
Decorate 56(sampb4) Binding 31
Decorate 56(sampb4) DescriptorSet 0
MemberDecorate 59(S) 0 RelaxedPrecision
Decorate 62(var) Flat
Decorate 62(var) Location 0
MemberDecorate 63(MS) 0 Location 17
Decorate 63(MS) Block
MemberDecorate 63(MS) 0 Location 17
Decorate 65(outMS) Location 2
2: TypeVoid
3: TypeFunction 2