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

@ -30,29 +30,30 @@ Validation failed
MemberName 50(Buffer) 4 "i1"
MemberName 50(Buffer) 5 "data"
Name 52 ""
Decorate 12(i1D) DescriptorSet 0
Decorate 12(i1D) Binding 0
Decorate 12(i1D) Coherent
Decorate 19(i2D) DescriptorSet 0
Decorate 19(i2D) Binding 1
Decorate 12(i1D) Binding 0
Decorate 12(i1D) DescriptorSet 0
Decorate 19(i2D) Volatile
Decorate 19(i2D) Coherent
Decorate 28(i2DRect) DescriptorSet 0
Decorate 28(i2DRect) Binding 2
Decorate 19(i2D) Binding 1
Decorate 19(i2D) DescriptorSet 0
Decorate 28(i2DRect) Restrict
Decorate 35(i3D) DescriptorSet 0
Decorate 35(i3D) Binding 3
Decorate 28(i2DRect) Binding 2
Decorate 28(i2DRect) DescriptorSet 0
Decorate 35(i3D) NonWritable
Decorate 44(iCube) DescriptorSet 0
Decorate 44(iCube) Binding 3
Decorate 35(i3D) Binding 3
Decorate 35(i3D) DescriptorSet 0
Decorate 44(iCube) NonReadable
Decorate 44(iCube) Binding 3
Decorate 44(iCube) DescriptorSet 0
MemberDecorate 49(Data) 0 Offset 0
MemberDecorate 49(Data) 1 Offset 8
Decorate 50(Buffer) BufferBlock
MemberDecorate 50(Buffer) 0 Volatile
MemberDecorate 50(Buffer) 0 Coherent
MemberDecorate 50(Buffer) 0 Offset 0
MemberDecorate 50(Buffer) 1 Coherent
MemberDecorate 50(Buffer) 1 Restrict
MemberDecorate 50(Buffer) 1 Coherent
MemberDecorate 50(Buffer) 1 Offset 8
MemberDecorate 50(Buffer) 2 Coherent
MemberDecorate 50(Buffer) 2 NonWritable
@ -64,9 +65,8 @@ Validation failed
MemberDecorate 50(Buffer) 4 Offset 48
MemberDecorate 50(Buffer) 5 Coherent
MemberDecorate 50(Buffer) 5 Offset 56
Decorate 50(Buffer) BufferBlock
Decorate 52 DescriptorSet 0
Decorate 52 Binding 4
Decorate 52 DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32