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

@ -194,24 +194,25 @@ Validation failed
Name 65 "input"
Name 68 "@entryPointOutput.a"
Name 69 "param"
MemberDecorate 24(cbufName2) 0 Offset 0
Decorate 24(cbufName2) Block
Decorate 26 DescriptorSet 0
MemberDecorate 24(cbufName2) 0 Offset 0
Decorate 26 Binding 3
MemberDecorate 31(buf1) 0 Offset 0
Decorate 26 DescriptorSet 0
Decorate 31(buf1) Block
Decorate 33 DescriptorSet 0
MemberDecorate 31(buf1) 0 Offset 0
Decorate 33 Binding 0
Decorate 33 DescriptorSet 0
Decorate 37(buf2) BufferBlock
MemberDecorate 37(buf2) 0 NonWritable
MemberDecorate 37(buf2) 0 Offset 0
Decorate 37(buf2) BufferBlock
Decorate 39 DescriptorSet 0
Decorate 39 Binding 1
Decorate 39 DescriptorSet 0
Decorate 43(cbufName) Block
MemberDecorate 43(cbufName) 0 Offset 0
MemberDecorate 43(cbufName) 1 Offset 20
Decorate 43(cbufName) Block
Decorate 45 DescriptorSet 0
Decorate 45 Binding 2
Decorate 45 DescriptorSet 0
Decorate 50(tbufName) BufferBlock
MemberDecorate 50(tbufName) 0 NonWritable
MemberDecorate 50(tbufName) 0 Offset 16
MemberDecorate 50(tbufName) 1 NonWritable
@ -229,24 +230,23 @@ Validation failed
MemberDecorate 50(tbufName) 7 NonWritable
MemberDecorate 50(tbufName) 7 Offset 128
MemberDecorate 50(tbufName) 8 RowMajor
MemberDecorate 50(tbufName) 8 MatrixStride 16
MemberDecorate 50(tbufName) 8 NonWritable
MemberDecorate 50(tbufName) 8 Offset 112
MemberDecorate 50(tbufName) 8 MatrixStride 16
MemberDecorate 50(tbufName) 9 ColMajor
MemberDecorate 50(tbufName) 9 MatrixStride 16
MemberDecorate 50(tbufName) 9 NonWritable
MemberDecorate 50(tbufName) 9 Offset 176
MemberDecorate 50(tbufName) 9 MatrixStride 16
MemberDecorate 50(tbufName) 10 RowMajor
MemberDecorate 50(tbufName) 10 MatrixStride 16
MemberDecorate 50(tbufName) 10 NonWritable
MemberDecorate 50(tbufName) 10 Offset 240
MemberDecorate 50(tbufName) 10 MatrixStride 16
MemberDecorate 50(tbufName) 11 RowMajor
MemberDecorate 50(tbufName) 11 MatrixStride 16
MemberDecorate 50(tbufName) 11 NonWritable
MemberDecorate 50(tbufName) 11 Offset 304
MemberDecorate 50(tbufName) 11 MatrixStride 16
Decorate 50(tbufName) BufferBlock
Decorate 52 DescriptorSet 0
Decorate 52 Binding 8
Decorate 52 DescriptorSet 0
Decorate 65(input) BuiltIn FragCoord
Decorate 68(@entryPointOutput.a) Location 0
2: TypeVoid