Prevent duplicate SPIR-V decorations (#3570)

* Update SPIRV-Tools
  * https://github.com/KhronosGroup/SPIRV-Tools/pull/5641 added
    validation that caught errors
* Modified glslang to prevent duplicate Restrict and Coherent
  decorations
* Modify createConstructor to avoid adding duplicate RelaxedPrecision
  decorations when generating a scalar
This commit is contained in:
alan-baker 2024-04-15 11:39:23 -04:00 committed by GitHub
parent 2db79056b4
commit 1e4f53ab2d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 14 additions and 39 deletions

View file

@ -38,7 +38,6 @@ spv.bufferhandle13.frag
Decorate 10(y) Aliased
Decorate 15(y) DecorationAliasedPointerEXT
Decorate 18(y) Restrict
Decorate 18(y) Restrict
Decorate 21(y) Restrict
Decorate 21(y) DecorationRestrictPointerEXT
Decorate 34(a) DecorationAliasedPointerEXT

View file

@ -43,11 +43,9 @@ spv.ext.ClosestHitShader_Subgroup.rchit
Decorate 42 RelaxedPrecision
Decorate 43(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
Decorate 46 RelaxedPrecision
Decorate 46 RelaxedPrecision
Decorate 47 RelaxedPrecision
Decorate 48(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
Decorate 51 RelaxedPrecision
Decorate 51 RelaxedPrecision
Decorate 52 RelaxedPrecision
Decorate 53(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
Decorate 59 RelaxedPrecision

View file

@ -48,7 +48,6 @@ Validation failed
Decorate 44(iCube) NonReadable
MemberDecorate 49(Data) 0 Offset 0
MemberDecorate 49(Data) 1 Offset 8
MemberDecorate 50(Buffer) 0 Coherent
MemberDecorate 50(Buffer) 0 Volatile
MemberDecorate 50(Buffer) 0 Coherent
MemberDecorate 50(Buffer) 0 Offset 0

View file

@ -51,72 +51,58 @@ spv.nvAtomicFp16Vec.frag
Decorate 11(buf) Binding 0
Decorate 74(fimage1D) DescriptorSet 0
Decorate 74(fimage1D) Binding 0
Decorate 74(fimage1D) Coherent
Decorate 74(fimage1D) Volatile
Decorate 74(fimage1D) Coherent
Decorate 85(fimage1DArray) DescriptorSet 0
Decorate 85(fimage1DArray) Binding 1
Decorate 85(fimage1DArray) Coherent
Decorate 85(fimage1DArray) Volatile
Decorate 85(fimage1DArray) Coherent
Decorate 97(fimage2D) DescriptorSet 0
Decorate 97(fimage2D) Binding 2
Decorate 97(fimage2D) Coherent
Decorate 97(fimage2D) Volatile
Decorate 97(fimage2D) Coherent
Decorate 107(fimage2DArray) DescriptorSet 0
Decorate 107(fimage2DArray) Binding 3
Decorate 107(fimage2DArray) Coherent
Decorate 107(fimage2DArray) Volatile
Decorate 107(fimage2DArray) Coherent
Decorate 119(fimageCube) DescriptorSet 0
Decorate 119(fimageCube) Binding 5
Decorate 119(fimageCube) Coherent
Decorate 119(fimageCube) Volatile
Decorate 119(fimageCube) Coherent
Decorate 129(fimageCubeArray) DescriptorSet 0
Decorate 129(fimageCubeArray) Binding 6
Decorate 129(fimageCubeArray) Coherent
Decorate 129(fimageCubeArray) Volatile
Decorate 129(fimageCubeArray) Coherent
Decorate 139(fimage3D) DescriptorSet 0
Decorate 139(fimage3D) Binding 9
Decorate 139(fimage3D) Coherent
Decorate 139(fimage3D) Volatile
Decorate 139(fimage3D) Coherent
Decorate 299(fimage1Dv4) DescriptorSet 0
Decorate 299(fimage1Dv4) Binding 10
Decorate 299(fimage1Dv4) Coherent
Decorate 299(fimage1Dv4) Volatile
Decorate 299(fimage1Dv4) Coherent
Decorate 310(fimage1DArrayv4) DescriptorSet 0
Decorate 310(fimage1DArrayv4) Binding 11
Decorate 310(fimage1DArrayv4) Coherent
Decorate 310(fimage1DArrayv4) Volatile
Decorate 310(fimage1DArrayv4) Coherent
Decorate 320(fimage2Dv4) DescriptorSet 0
Decorate 320(fimage2Dv4) Binding 12
Decorate 320(fimage2Dv4) Coherent
Decorate 320(fimage2Dv4) Volatile
Decorate 320(fimage2Dv4) Coherent
Decorate 330(fimage2DArrayv4) DescriptorSet 0
Decorate 330(fimage2DArrayv4) Binding 13
Decorate 330(fimage2DArrayv4) Coherent
Decorate 330(fimage2DArrayv4) Volatile
Decorate 330(fimage2DArrayv4) Coherent
Decorate 340(fimageCubev4) DescriptorSet 0
Decorate 340(fimageCubev4) Binding 15
Decorate 340(fimageCubev4) Coherent
Decorate 340(fimageCubev4) Volatile
Decorate 340(fimageCubev4) Coherent
Decorate 350(fimageCubeArrayv4) DescriptorSet 0
Decorate 350(fimageCubeArrayv4) Binding 16
Decorate 350(fimageCubeArrayv4) Coherent
Decorate 350(fimageCubeArrayv4) Volatile
Decorate 350(fimageCubeArrayv4) Coherent
Decorate 360(fimage3Dv4) DescriptorSet 0
Decorate 360(fimage3Dv4) Binding 19
Decorate 360(fimage3Dv4) Coherent
Decorate 360(fimage3Dv4) Volatile
Decorate 360(fimage3Dv4) Coherent
2: TypeVoid

View file

@ -728,18 +728,15 @@ gl_FragCoord origin is upper left
Name 196 "structUniform.samplers.tn[2]"
Name 197 "structUniform.samplers.tn[3]"
Name 198 "param"
MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Offset 0
MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Volatile
MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Offset 4
Decorate 34(gl_AtomicCounterBlock_0) BufferBlock
Decorate 36 DescriptorSet 0
Decorate 36 Binding 9
MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Coherent
MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Volatile
MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Coherent
MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Offset 0

View file

@ -378,15 +378,12 @@ gl_FragCoord origin is upper left
Name 68 "o"
Name 72 "j"
Name 79 "v"
MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Offset 0
MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Volatile
MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Offset 4
MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Volatile
MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Offset 8

View file

@ -465,15 +465,12 @@ gl_FragCoord origin is upper left
Name 72 "gl_VertexIndex"
Name 82 "gl_InstanceIndex"
Name 90 "io"
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Offset 0
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Offset 4
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Offset 8
@ -622,15 +619,12 @@ gl_FragCoord origin is upper left
Name 37 ""
Name 68 "o"
Name 70 "io"
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Offset 0
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Offset 4
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Offset 8