mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 11:30:06 +00:00
33c7e30860
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
144 lines
7.2 KiB
Plaintext
144 lines
7.2 KiB
Plaintext
spv.430.vert
|
|
Validation failed
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 66
|
|
|
|
Capability Shader
|
|
Capability ClipDistance
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Vertex 4 "main" 12 23 34 38 41 42 62 65
|
|
Source GLSL 450
|
|
Name 4 "main"
|
|
Name 10 "gl_PerVertex"
|
|
MemberName 10(gl_PerVertex) 0 "gl_ClipDistance"
|
|
Name 12 ""
|
|
Name 23 "bad"
|
|
Name 34 "badorder3"
|
|
Name 38 "f"
|
|
Name 41 "badorder"
|
|
Name 42 "badorder2"
|
|
Name 43 "boundblock"
|
|
MemberName 43(boundblock) 0 "aoeu"
|
|
Name 45 "boundInst"
|
|
Name 46 "anonblock"
|
|
MemberName 46(anonblock) 0 "aoeu"
|
|
Name 48 ""
|
|
Name 52 "sampb1"
|
|
Name 55 "sampb2"
|
|
Name 56 "sampb4"
|
|
Name 59 "S"
|
|
MemberName 59(S) 0 "a"
|
|
MemberName 59(S) 1 "b"
|
|
MemberName 59(S) 2 "c"
|
|
Name 60 "SS"
|
|
MemberName 60(SS) 0 "b"
|
|
MemberName 60(SS) 1 "s"
|
|
MemberName 60(SS) 2 "c"
|
|
Name 62 "var"
|
|
Name 63 "MS"
|
|
MemberName 63(MS) 0 "f"
|
|
Name 65 "outMS"
|
|
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) Invariant
|
|
Decorate 42(badorder2) Location 0
|
|
Decorate 43(boundblock) Block
|
|
MemberDecorate 43(boundblock) 0 Offset 0
|
|
Decorate 45(boundInst) Binding 3
|
|
Decorate 45(boundInst) DescriptorSet 0
|
|
Decorate 46(anonblock) Block
|
|
MemberDecorate 46(anonblock) 0 Offset 0
|
|
Decorate 48 Binding 7
|
|
Decorate 48 DescriptorSet 0
|
|
Decorate 52(sampb1) Binding 4
|
|
Decorate 52(sampb1) DescriptorSet 0
|
|
Decorate 55(sampb2) Binding 5
|
|
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
|
|
Decorate 63(MS) Block
|
|
MemberDecorate 63(MS) 0 Location 17
|
|
Decorate 65(outMS) Location 2
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeInt 32 0
|
|
8: 7(int) Constant 3
|
|
9: TypeArray 6(float) 8
|
|
10(gl_PerVertex): TypeStruct 9
|
|
11: TypePointer Output 10(gl_PerVertex)
|
|
12: 11(ptr) Variable Output
|
|
13: TypeInt 32 1
|
|
14: 13(int) Constant 0
|
|
15: 13(int) Constant 2
|
|
16: 6(float) Constant 1080872141
|
|
17: TypePointer Output 6(float)
|
|
19: TypeVector 6(float) 4
|
|
20: 7(int) Constant 10
|
|
21: TypeArray 19(fvec4) 20
|
|
22: TypePointer Input 21
|
|
23(bad): 22(ptr) Variable Input
|
|
24: 7(int) Constant 0
|
|
25: TypePointer Input 6(float)
|
|
28: 6(float) Constant 1082549862
|
|
29: TypeBool
|
|
33: TypePointer Output 19(fvec4)
|
|
34(badorder3): 33(ptr) Variable Output
|
|
35: TypePointer Input 19(fvec4)
|
|
38(f): 25(ptr) Variable Input
|
|
41(badorder): 35(ptr) Variable Input
|
|
42(badorder2): 33(ptr) Variable Output
|
|
43(boundblock): TypeStruct 13(int)
|
|
44: TypePointer Uniform 43(boundblock)
|
|
45(boundInst): 44(ptr) Variable Uniform
|
|
46(anonblock): TypeStruct 13(int)
|
|
47: TypePointer Uniform 46(anonblock)
|
|
48: 47(ptr) Variable Uniform
|
|
49: TypeImage 6(float) 2D sampled format:Unknown
|
|
50: TypeSampledImage 49
|
|
51: TypePointer UniformConstant 50
|
|
52(sampb1): 51(ptr) Variable UniformConstant
|
|
53: TypeArray 50 20
|
|
54: TypePointer UniformConstant 53
|
|
55(sampb2): 54(ptr) Variable UniformConstant
|
|
56(sampb4): 51(ptr) Variable UniformConstant
|
|
57: TypeVector 7(int) 2
|
|
58: TypeVector 6(float) 3
|
|
59(S): TypeStruct 6(float) 57(ivec2) 58(fvec3)
|
|
60(SS): TypeStruct 19(fvec4) 59(S) 19(fvec4)
|
|
61: TypePointer Output 60(SS)
|
|
62(var): 61(ptr) Variable Output
|
|
63(MS): TypeStruct 6(float)
|
|
64: TypePointer Output 63(MS)
|
|
65(outMS): 64(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
18: 17(ptr) AccessChain 12 14 15
|
|
Store 18 16
|
|
26: 25(ptr) AccessChain 23(bad) 14 24
|
|
27: 6(float) Load 26
|
|
30: 29(bool) FOrdEqual 27 28
|
|
SelectionMerge 32 None
|
|
BranchConditional 30 31 32
|
|
31: Label
|
|
36: 35(ptr) AccessChain 23(bad) 14
|
|
37: 19(fvec4) Load 36
|
|
Store 34(badorder3) 37
|
|
Branch 32
|
|
32: Label
|
|
39: 6(float) Load 38(f)
|
|
40: 17(ptr) AccessChain 12 14 14
|
|
Store 40 39
|
|
Return
|
|
FunctionEnd
|