
This fixes some vulkanCTS tests that use struct arrays as a member of in/out interface blocks. From Vulkan spec: "If it is a not a Block, then the structure type must have a Location decoration. Its members are assigned consecutive locations in their declaration order, with the first member assigned to the location specified for the structure type. >>>>> The members, and their nested types, must not themselves have Location decorations <<<<" From SPIR-V spec: "When applied to structure-type members, the Decorations Noperspective, Flat, Patch, Centroid, and Sample can only be applied to the top-level members of the structure type. (Nested objects' types cannot be structures whose members are decorated with these decorations.)"
173 lines
8.7 KiB
Plaintext
Executable File
173 lines
8.7 KiB
Plaintext
Executable File
spv.variableArrayIndex.frag
|
|
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 97
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 10 21 37 40 58 67
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source GLSL 400
|
|
Name 4 "main"
|
|
Name 8 "iLocal"
|
|
Name 10 "Count"
|
|
Name 13 "lunarStruct1"
|
|
MemberName 13(lunarStruct1) 0 "i"
|
|
MemberName 13(lunarStruct1) 1 "f"
|
|
Name 14 "lunarStruct2"
|
|
MemberName 14(lunarStruct2) 0 "i"
|
|
MemberName 14(lunarStruct2) 1 "f"
|
|
MemberName 14(lunarStruct2) 2 "s1_1"
|
|
Name 18 "lunarStruct1"
|
|
MemberName 18(lunarStruct1) 0 "i"
|
|
MemberName 18(lunarStruct1) 1 "f"
|
|
Name 19 "lunarStruct3"
|
|
MemberName 19(lunarStruct3) 0 "s2_1"
|
|
MemberName 19(lunarStruct3) 1 "i"
|
|
MemberName 19(lunarStruct3) 2 "f"
|
|
MemberName 19(lunarStruct3) 3 "s1_1"
|
|
Name 21 "foo3"
|
|
Name 31 "scale"
|
|
Name 32 "lunarStruct1"
|
|
MemberName 32(lunarStruct1) 0 "i"
|
|
MemberName 32(lunarStruct1) 1 "f"
|
|
Name 33 "lunarStruct2"
|
|
MemberName 33(lunarStruct2) 0 "i"
|
|
MemberName 33(lunarStruct2) 1 "f"
|
|
MemberName 33(lunarStruct2) 2 "s1_1"
|
|
Name 37 "foo2"
|
|
Name 38 "lunarStruct1"
|
|
MemberName 38(lunarStruct1) 0 "i"
|
|
MemberName 38(lunarStruct1) 1 "f"
|
|
Name 40 "foo"
|
|
Name 58 "gl_FragColor"
|
|
Name 63 "samp2D"
|
|
Name 67 "coord"
|
|
Name 73 "constructed"
|
|
Decorate 10(Count) Flat
|
|
MemberDecorate 19(lunarStruct3) 0 Flat
|
|
MemberDecorate 19(lunarStruct3) 1 Flat
|
|
MemberDecorate 19(lunarStruct3) 2 Flat
|
|
MemberDecorate 19(lunarStruct3) 3 Flat
|
|
MemberDecorate 33(lunarStruct2) 0 Flat
|
|
MemberDecorate 33(lunarStruct2) 1 Flat
|
|
MemberDecorate 33(lunarStruct2) 2 Flat
|
|
MemberDecorate 38(lunarStruct1) 0 Flat
|
|
MemberDecorate 38(lunarStruct1) 1 Flat
|
|
Decorate 63(samp2D) DescriptorSet 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypePointer Function 6(int)
|
|
9: TypePointer Input 6(int)
|
|
10(Count): 9(ptr) Variable Input
|
|
12: TypeFloat 32
|
|
13(lunarStruct1): TypeStruct 6(int) 12(float)
|
|
14(lunarStruct2): TypeStruct 6(int) 12(float) 13(lunarStruct1)
|
|
15: TypeInt 32 0
|
|
16: 15(int) Constant 3
|
|
17: TypeArray 14(lunarStruct2) 16
|
|
18(lunarStruct1): TypeStruct 6(int) 12(float)
|
|
19(lunarStruct3): TypeStruct 17 6(int) 12(float) 18(lunarStruct1)
|
|
20: TypePointer Input 19(lunarStruct3)
|
|
21(foo3): 20(ptr) Variable Input
|
|
22: 6(int) Constant 0
|
|
23: 6(int) Constant 1
|
|
26: TypeBool
|
|
30: TypePointer Function 12(float)
|
|
32(lunarStruct1): TypeStruct 6(int) 12(float)
|
|
33(lunarStruct2): TypeStruct 6(int) 12(float) 32(lunarStruct1)
|
|
34: 15(int) Constant 5
|
|
35: TypeArray 33(lunarStruct2) 34
|
|
36: TypePointer Input 35
|
|
37(foo2): 36(ptr) Variable Input
|
|
38(lunarStruct1): TypeStruct 6(int) 12(float)
|
|
39: TypePointer Input 38(lunarStruct1)
|
|
40(foo): 39(ptr) Variable Input
|
|
45: 6(int) Constant 2
|
|
50: TypePointer Input 12(float)
|
|
56: TypeVector 12(float) 4
|
|
57: TypePointer Output 56(fvec4)
|
|
58(gl_FragColor): 57(ptr) Variable Output
|
|
60: TypeImage 12(float) 2D sampled format:Unknown
|
|
61: TypeSampledImage 60
|
|
62: TypePointer UniformConstant 61
|
|
63(samp2D): 62(ptr) Variable UniformConstant
|
|
65: TypeVector 12(float) 2
|
|
66: TypePointer Input 65(fvec2)
|
|
67(coord): 66(ptr) Variable Input
|
|
71: TypeArray 65(fvec2) 16
|
|
72: TypePointer Function 71
|
|
77: 12(float) Constant 1065353216
|
|
78: 12(float) Constant 1073741824
|
|
79: 65(fvec2) ConstantComposite 77 78
|
|
83: TypePointer Function 65(fvec2)
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
8(iLocal): 7(ptr) Variable Function
|
|
31(scale): 30(ptr) Variable Function
|
|
73(constructed): 72(ptr) Variable Function
|
|
11: 6(int) Load 10(Count)
|
|
Store 8(iLocal) 11
|
|
24: 9(ptr) AccessChain 21(foo3) 22 23 22
|
|
25: 6(int) Load 24
|
|
27: 26(bool) SGreaterThan 25 22
|
|
SelectionMerge 29 None
|
|
BranchConditional 27 28 53
|
|
28: Label
|
|
41: 9(ptr) AccessChain 40(foo) 22
|
|
42: 6(int) Load 41
|
|
43: 9(ptr) AccessChain 21(foo3) 22 42 22
|
|
44: 6(int) Load 43
|
|
46: 6(int) IAdd 44 45
|
|
47: 6(int) Load 8(iLocal)
|
|
48: 6(int) IAdd 47 23
|
|
Store 8(iLocal) 48
|
|
49: 6(int) IAdd 46 48
|
|
51: 50(ptr) AccessChain 37(foo2) 49 45 23
|
|
52: 12(float) Load 51
|
|
Store 31(scale) 52
|
|
Branch 29
|
|
53: Label
|
|
54: 50(ptr) AccessChain 21(foo3) 22 22 45 23
|
|
55: 12(float) Load 54
|
|
Store 31(scale) 55
|
|
Branch 29
|
|
29: Label
|
|
59: 12(float) Load 31(scale)
|
|
64: 61 Load 63(samp2D)
|
|
68: 65(fvec2) Load 67(coord)
|
|
69: 56(fvec4) ImageSampleImplicitLod 64 68
|
|
70: 56(fvec4) VectorTimesScalar 69 59
|
|
Store 58(gl_FragColor) 70
|
|
74: 65(fvec2) Load 67(coord)
|
|
75: 12(float) Load 31(scale)
|
|
76: 65(fvec2) CompositeConstruct 75 75
|
|
80: 71 CompositeConstruct 74 76 79
|
|
Store 73(constructed) 80
|
|
81: 9(ptr) AccessChain 40(foo) 22
|
|
82: 6(int) Load 81
|
|
84: 83(ptr) AccessChain 73(constructed) 82
|
|
85: 65(fvec2) Load 84
|
|
86: 9(ptr) AccessChain 40(foo) 22
|
|
87: 6(int) Load 86
|
|
88: 83(ptr) AccessChain 73(constructed) 87
|
|
89: 65(fvec2) Load 88
|
|
90: 12(float) CompositeExtract 85 0
|
|
91: 12(float) CompositeExtract 85 1
|
|
92: 12(float) CompositeExtract 89 0
|
|
93: 12(float) CompositeExtract 89 1
|
|
94: 56(fvec4) CompositeConstruct 90 91 92 93
|
|
95: 56(fvec4) Load 58(gl_FragColor)
|
|
96: 56(fvec4) FAdd 95 94
|
|
Store 58(gl_FragColor) 96
|
|
Return
|
|
FunctionEnd
|