HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.

This needs some render testing, but is destined to be part of master.

This also leads to a variety of other simplifications.
 - IO are global symbols, so only need one list of linkage nodes (deferred)
 - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized
 - several parts of splitting/flattening are now localized
This commit is contained in:
John Kessenich
2017-01-19 15:41:47 -07:00
parent 18adbdbbb8
commit 02467d8d94
171 changed files with 37604 additions and 32679 deletions

View File

@@ -1,7 +1,7 @@
hlsl.load.basic.dx10.vert
Shader version: 450
0:? Sequence
0:47 Function Definition: main( (temp structure{temp 4-component vector of float Position Pos})
0:47 Function Definition: @main( (temp structure{temp 4-component vector of float Position Pos})
0:47 Function Parameters:
0:? Sequence
0:51 textureFetch (temp 4-component vector of float)
@@ -185,15 +185,18 @@ Shader version: 450
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:69 Sequence
0:69 Sequence
0:69 move second child to first child (temp 4-component vector of float)
0:? 'Pos' (out 4-component vector of float Position)
0:69 Pos: direct index for structure (temp 4-component vector of float)
0:69 'vsout' (temp structure{temp 4-component vector of float Pos})
0:69 Constant:
0:69 0 (const int)
0:69 Branch: Return
0:69 Branch: Return with expression
0:69 'vsout' (temp structure{temp 4-component vector of float Pos})
0:47 Function Definition: main( (temp void)
0:47 Function Parameters:
0:? Sequence
0:47 Sequence
0:47 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput_Pos' (out 4-component vector of float Position)
0:47 Pos: direct index for structure (temp 4-component vector of float Position)
0:47 Function Call: @main( (temp structure{temp 4-component vector of float Position Pos})
0:47 Constant:
0:47 0 (const int)
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -218,7 +221,7 @@ Shader version: 450
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:? 'PerVertex_out' (out block{out 4-component vector of float Position Pos})
0:? 'PerVertex_out' (out block{out 4-component vector of float Position @entryPointOutput_Pos})
Linked vertex stage:
@@ -226,7 +229,7 @@ Linked vertex stage:
Shader version: 450
0:? Sequence
0:47 Function Definition: main( (temp structure{temp 4-component vector of float Position Pos})
0:47 Function Definition: @main( (temp structure{temp 4-component vector of float Position Pos})
0:47 Function Parameters:
0:? Sequence
0:51 textureFetch (temp 4-component vector of float)
@@ -410,15 +413,18 @@ Shader version: 450
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:69 Sequence
0:69 Sequence
0:69 move second child to first child (temp 4-component vector of float)
0:? 'Pos' (out 4-component vector of float Position)
0:69 Pos: direct index for structure (temp 4-component vector of float)
0:69 'vsout' (temp structure{temp 4-component vector of float Pos})
0:69 Constant:
0:69 0 (const int)
0:69 Branch: Return
0:69 Branch: Return with expression
0:69 'vsout' (temp structure{temp 4-component vector of float Pos})
0:47 Function Definition: main( (temp void)
0:47 Function Parameters:
0:? Sequence
0:47 Sequence
0:47 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput_Pos' (out 4-component vector of float Position)
0:47 Pos: direct index for structure (temp 4-component vector of float Position)
0:47 Function Call: @main( (temp structure{temp 4-component vector of float Position Pos})
0:47 Constant:
0:47 0 (const int)
0:? Linker Objects
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -443,262 +449,279 @@ Shader version: 450
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
0:? 'PerVertex_out' (out block{out 4-component vector of float Position Pos})
0:? 'PerVertex_out' (out block{out 4-component vector of float Position @entryPointOutput_Pos})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 169
// Id's are bound by 180
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 123 168
EntryPoint Vertex 4 "main" 135 179
Name 4 "main"
Name 9 "g_tTex1df4"
Name 15 "$Global"
MemberName 15($Global) 0 "c1"
MemberName 15($Global) 1 "c2"
MemberName 15($Global) 2 "c3"
MemberName 15($Global) 3 "c4"
MemberName 15($Global) 4 "o1"
MemberName 15($Global) 5 "o2"
MemberName 15($Global) 6 "o3"
MemberName 15($Global) 7 "o4"
Name 17 ""
Name 31 "g_tTex1di4"
Name 40 "g_tTex1du4"
Name 50 "g_tTex2df4"
Name 63 "g_tTex2di4"
Name 73 "g_tTex2du4"
Name 83 "g_tTex3df4"
Name 96 "g_tTex3di4"
Name 106 "g_tTex3du4"
Name 114 "VS_OUTPUT"
MemberName 114(VS_OUTPUT) 0 "Pos"
Name 116 "vsout"
Name 123 "Pos"
Name 129 "g_sSamp"
Name 132 "g_tTexcdf4"
Name 135 "g_tTexcdi4"
Name 138 "g_tTexcdu4"
Name 141 "g_tTex1df4a"
Name 144 "g_tTex1di4a"
Name 147 "g_tTex1du4a"
Name 150 "g_tTex2df4a"
Name 153 "g_tTex2di4a"
Name 156 "g_tTex2du4a"
Name 159 "g_tTexcdf4a"
Name 162 "g_tTexcdi4a"
Name 165 "g_tTexcdu4a"
Name 166 "PerVertex_out"
MemberName 166(PerVertex_out) 0 "Pos"
Name 168 "PerVertex_out"
Decorate 9(g_tTex1df4) DescriptorSet 0
Decorate 9(g_tTex1df4) Binding 0
MemberDecorate 15($Global) 0 Offset 0
MemberDecorate 15($Global) 1 Offset 8
MemberDecorate 15($Global) 2 Offset 16
MemberDecorate 15($Global) 3 Offset 32
MemberDecorate 15($Global) 4 Offset 48
MemberDecorate 15($Global) 5 Offset 56
MemberDecorate 15($Global) 6 Offset 64
MemberDecorate 15($Global) 7 Offset 80
Decorate 15($Global) Block
Decorate 17 DescriptorSet 0
Decorate 31(g_tTex1di4) DescriptorSet 0
Decorate 40(g_tTex1du4) DescriptorSet 0
Decorate 50(g_tTex2df4) DescriptorSet 0
Decorate 63(g_tTex2di4) DescriptorSet 0
Decorate 73(g_tTex2du4) DescriptorSet 0
Decorate 83(g_tTex3df4) DescriptorSet 0
Decorate 96(g_tTex3di4) DescriptorSet 0
Decorate 106(g_tTex3du4) DescriptorSet 0
Decorate 123(Pos) BuiltIn Position
Decorate 129(g_sSamp) DescriptorSet 0
Decorate 129(g_sSamp) Binding 0
Decorate 132(g_tTexcdf4) DescriptorSet 0
Decorate 135(g_tTexcdi4) DescriptorSet 0
Decorate 138(g_tTexcdu4) DescriptorSet 0
Decorate 141(g_tTex1df4a) DescriptorSet 0
Decorate 144(g_tTex1di4a) DescriptorSet 0
Decorate 147(g_tTex1du4a) DescriptorSet 0
Decorate 150(g_tTex2df4a) DescriptorSet 0
Decorate 153(g_tTex2di4a) DescriptorSet 0
Decorate 156(g_tTex2du4a) DescriptorSet 0
Decorate 159(g_tTexcdf4a) DescriptorSet 0
Decorate 162(g_tTexcdi4a) DescriptorSet 0
Decorate 165(g_tTexcdu4a) DescriptorSet 0
MemberDecorate 166(PerVertex_out) 0 BuiltIn Position
Decorate 166(PerVertex_out) Block
Name 8 "VS_OUTPUT"
MemberName 8(VS_OUTPUT) 0 "Pos"
Name 10 "@main("
Name 14 "g_tTex1df4"
Name 20 "$Global"
MemberName 20($Global) 0 "c1"
MemberName 20($Global) 1 "c2"
MemberName 20($Global) 2 "c3"
MemberName 20($Global) 3 "c4"
MemberName 20($Global) 4 "o1"
MemberName 20($Global) 5 "o2"
MemberName 20($Global) 6 "o3"
MemberName 20($Global) 7 "o4"
Name 22 ""
Name 35 "g_tTex1di4"
Name 44 "g_tTex1du4"
Name 54 "g_tTex2df4"
Name 67 "g_tTex2di4"
Name 77 "g_tTex2du4"
Name 87 "g_tTex3df4"
Name 100 "g_tTex3di4"
Name 110 "g_tTex3du4"
Name 118 "VS_OUTPUT"
MemberName 118(VS_OUTPUT) 0 "Pos"
Name 120 "vsout"
Name 135 "@entryPointOutput_Pos"
Name 140 "g_sSamp"
Name 143 "g_tTexcdf4"
Name 146 "g_tTexcdi4"
Name 149 "g_tTexcdu4"
Name 152 "g_tTex1df4a"
Name 155 "g_tTex1di4a"
Name 158 "g_tTex1du4a"
Name 161 "g_tTex2df4a"
Name 164 "g_tTex2di4a"
Name 167 "g_tTex2du4a"
Name 170 "g_tTexcdf4a"
Name 173 "g_tTexcdi4a"
Name 176 "g_tTexcdu4a"
Name 177 "PerVertex_out"
MemberName 177(PerVertex_out) 0 "@entryPointOutput_Pos"
Name 179 "PerVertex_out"
MemberDecorate 8(VS_OUTPUT) 0 BuiltIn Position
Decorate 14(g_tTex1df4) DescriptorSet 0
Decorate 14(g_tTex1df4) Binding 0
MemberDecorate 20($Global) 0 Offset 0
MemberDecorate 20($Global) 1 Offset 8
MemberDecorate 20($Global) 2 Offset 16
MemberDecorate 20($Global) 3 Offset 32
MemberDecorate 20($Global) 4 Offset 48
MemberDecorate 20($Global) 5 Offset 56
MemberDecorate 20($Global) 6 Offset 64
MemberDecorate 20($Global) 7 Offset 80
Decorate 20($Global) Block
Decorate 22 DescriptorSet 0
Decorate 35(g_tTex1di4) DescriptorSet 0
Decorate 44(g_tTex1du4) DescriptorSet 0
Decorate 54(g_tTex2df4) DescriptorSet 0
Decorate 67(g_tTex2di4) DescriptorSet 0
Decorate 77(g_tTex2du4) DescriptorSet 0
Decorate 87(g_tTex3df4) DescriptorSet 0
Decorate 100(g_tTex3di4) DescriptorSet 0
Decorate 110(g_tTex3du4) DescriptorSet 0
Decorate 135(@entryPointOutput_Pos) BuiltIn Position
Decorate 140(g_sSamp) DescriptorSet 0
Decorate 140(g_sSamp) Binding 0
Decorate 143(g_tTexcdf4) DescriptorSet 0
Decorate 146(g_tTexcdi4) DescriptorSet 0
Decorate 149(g_tTexcdu4) DescriptorSet 0
Decorate 152(g_tTex1df4a) DescriptorSet 0
Decorate 155(g_tTex1di4a) DescriptorSet 0
Decorate 158(g_tTex1du4a) DescriptorSet 0
Decorate 161(g_tTex2df4a) DescriptorSet 0
Decorate 164(g_tTex2di4a) DescriptorSet 0
Decorate 167(g_tTex2du4a) DescriptorSet 0
Decorate 170(g_tTexcdf4a) DescriptorSet 0
Decorate 173(g_tTexcdi4a) DescriptorSet 0
Decorate 176(g_tTexcdu4a) DescriptorSet 0
MemberDecorate 177(PerVertex_out) 0 BuiltIn Position
Decorate 177(PerVertex_out) Block
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeImage 6(float) 1D sampled format:Unknown
8: TypePointer UniformConstant 7
9(g_tTex1df4): 8(ptr) Variable UniformConstant
11: TypeInt 32 1
12: TypeVector 11(int) 2
13: TypeVector 11(int) 3
14: TypeVector 11(int) 4
15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4)
16: TypePointer Uniform 15($Global)
17: 16(ptr) Variable Uniform
18: 11(int) Constant 1
19: TypeInt 32 0
20: 19(int) Constant 0
21: TypePointer Uniform 11(int)
24: 19(int) Constant 1
27: TypeVector 6(float) 4
29: TypeImage 11(int) 1D sampled format:Unknown
30: TypePointer UniformConstant 29
31(g_tTex1di4): 30(ptr) Variable UniformConstant
38: TypeImage 19(int) 1D sampled format:Unknown
39: TypePointer UniformConstant 38
40(g_tTex1du4): 39(ptr) Variable UniformConstant
46: TypeVector 19(int) 4
48: TypeImage 6(float) 2D sampled format:Unknown
49: TypePointer UniformConstant 48
50(g_tTex2df4): 49(ptr) Variable UniformConstant
52: 11(int) Constant 2
53: TypePointer Uniform 13(ivec3)
57: 19(int) Constant 2
61: TypeImage 11(int) 2D sampled format:Unknown
62: TypePointer UniformConstant 61
63(g_tTex2di4): 62(ptr) Variable UniformConstant
71: TypeImage 19(int) 2D sampled format:Unknown
72: TypePointer UniformConstant 71
73(g_tTex2du4): 72(ptr) Variable UniformConstant
81: TypeImage 6(float) 3D sampled format:Unknown
82: TypePointer UniformConstant 81
83(g_tTex3df4): 82(ptr) Variable UniformConstant
85: 11(int) Constant 3
86: TypePointer Uniform 14(ivec4)
90: 19(int) Constant 3
94: TypeImage 11(int) 3D sampled format:Unknown
95: TypePointer UniformConstant 94
96(g_tTex3di4): 95(ptr) Variable UniformConstant
104: TypeImage 19(int) 3D sampled format:Unknown
105: TypePointer UniformConstant 104
106(g_tTex3du4): 105(ptr) Variable UniformConstant
114(VS_OUTPUT): TypeStruct 27(fvec4)
115: TypePointer Function 114(VS_OUTPUT)
117: 11(int) Constant 0
118: 6(float) Constant 0
119: 27(fvec4) ConstantComposite 118 118 118 118
120: TypePointer Function 27(fvec4)
122: TypePointer Output 27(fvec4)
123(Pos): 122(ptr) Variable Output
127: TypeSampler
128: TypePointer UniformConstant 127
129(g_sSamp): 128(ptr) Variable UniformConstant
130: TypeImage 6(float) Cube sampled format:Unknown
131: TypePointer UniformConstant 130
132(g_tTexcdf4): 131(ptr) Variable UniformConstant
133: TypeImage 11(int) Cube sampled format:Unknown
134: TypePointer UniformConstant 133
135(g_tTexcdi4): 134(ptr) Variable UniformConstant
136: TypeImage 19(int) Cube sampled format:Unknown
137: TypePointer UniformConstant 136
138(g_tTexcdu4): 137(ptr) Variable UniformConstant
139: TypeImage 6(float) 1D array sampled format:Unknown
140: TypePointer UniformConstant 139
141(g_tTex1df4a): 140(ptr) Variable UniformConstant
142: TypeImage 11(int) 1D array sampled format:Unknown
143: TypePointer UniformConstant 142
144(g_tTex1di4a): 143(ptr) Variable UniformConstant
145: TypeImage 19(int) 1D array sampled format:Unknown
146: TypePointer UniformConstant 145
147(g_tTex1du4a): 146(ptr) Variable UniformConstant
148: TypeImage 6(float) 2D array sampled format:Unknown
149: TypePointer UniformConstant 148
150(g_tTex2df4a): 149(ptr) Variable UniformConstant
151: TypeImage 11(int) 2D array sampled format:Unknown
152: TypePointer UniformConstant 151
153(g_tTex2di4a): 152(ptr) Variable UniformConstant
154: TypeImage 19(int) 2D array sampled format:Unknown
155: TypePointer UniformConstant 154
156(g_tTex2du4a): 155(ptr) Variable UniformConstant
157: TypeImage 6(float) Cube array sampled format:Unknown
158: TypePointer UniformConstant 157
159(g_tTexcdf4a): 158(ptr) Variable UniformConstant
160: TypeImage 11(int) Cube array sampled format:Unknown
161: TypePointer UniformConstant 160
162(g_tTexcdi4a): 161(ptr) Variable UniformConstant
163: TypeImage 19(int) Cube array sampled format:Unknown
164: TypePointer UniformConstant 163
165(g_tTexcdu4a): 164(ptr) Variable UniformConstant
166(PerVertex_out): TypeStruct 27(fvec4)
167: TypePointer Output 166(PerVertex_out)
168(PerVertex_out): 167(ptr) Variable Output
7: TypeVector 6(float) 4
8(VS_OUTPUT): TypeStruct 7(fvec4)
9: TypeFunction 8(VS_OUTPUT)
12: TypeImage 6(float) 1D sampled format:Unknown
13: TypePointer UniformConstant 12
14(g_tTex1df4): 13(ptr) Variable UniformConstant
16: TypeInt 32 1
17: TypeVector 16(int) 2
18: TypeVector 16(int) 3
19: TypeVector 16(int) 4
20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4)
21: TypePointer Uniform 20($Global)
22: 21(ptr) Variable Uniform
23: 16(int) Constant 1
24: TypeInt 32 0
25: 24(int) Constant 0
26: TypePointer Uniform 16(int)
29: 24(int) Constant 1
33: TypeImage 16(int) 1D sampled format:Unknown
34: TypePointer UniformConstant 33
35(g_tTex1di4): 34(ptr) Variable UniformConstant
42: TypeImage 24(int) 1D sampled format:Unknown
43: TypePointer UniformConstant 42
44(g_tTex1du4): 43(ptr) Variable UniformConstant
50: TypeVector 24(int) 4
52: TypeImage 6(float) 2D sampled format:Unknown
53: TypePointer UniformConstant 52
54(g_tTex2df4): 53(ptr) Variable UniformConstant
56: 16(int) Constant 2
57: TypePointer Uniform 18(ivec3)
61: 24(int) Constant 2
65: TypeImage 16(int) 2D sampled format:Unknown
66: TypePointer UniformConstant 65
67(g_tTex2di4): 66(ptr) Variable UniformConstant
75: TypeImage 24(int) 2D sampled format:Unknown
76: TypePointer UniformConstant 75
77(g_tTex2du4): 76(ptr) Variable UniformConstant
85: TypeImage 6(float) 3D sampled format:Unknown
86: TypePointer UniformConstant 85
87(g_tTex3df4): 86(ptr) Variable UniformConstant
89: 16(int) Constant 3
90: TypePointer Uniform 19(ivec4)
94: 24(int) Constant 3
98: TypeImage 16(int) 3D sampled format:Unknown
99: TypePointer UniformConstant 98
100(g_tTex3di4): 99(ptr) Variable UniformConstant
108: TypeImage 24(int) 3D sampled format:Unknown
109: TypePointer UniformConstant 108
110(g_tTex3du4): 109(ptr) Variable UniformConstant
118(VS_OUTPUT): TypeStruct 7(fvec4)
119: TypePointer Function 118(VS_OUTPUT)
121: 16(int) Constant 0
122: 6(float) Constant 0
123: 7(fvec4) ConstantComposite 122 122 122 122
124: TypePointer Function 7(fvec4)
127: TypePointer Function 8(VS_OUTPUT)
134: TypePointer Output 7(fvec4)
135(@entryPointOutput_Pos): 134(ptr) Variable Output
138: TypeSampler
139: TypePointer UniformConstant 138
140(g_sSamp): 139(ptr) Variable UniformConstant
141: TypeImage 6(float) Cube sampled format:Unknown
142: TypePointer UniformConstant 141
143(g_tTexcdf4): 142(ptr) Variable UniformConstant
144: TypeImage 16(int) Cube sampled format:Unknown
145: TypePointer UniformConstant 144
146(g_tTexcdi4): 145(ptr) Variable UniformConstant
147: TypeImage 24(int) Cube sampled format:Unknown
148: TypePointer UniformConstant 147
149(g_tTexcdu4): 148(ptr) Variable UniformConstant
150: TypeImage 6(float) 1D array sampled format:Unknown
151: TypePointer UniformConstant 150
152(g_tTex1df4a): 151(ptr) Variable UniformConstant
153: TypeImage 16(int) 1D array sampled format:Unknown
154: TypePointer UniformConstant 153
155(g_tTex1di4a): 154(ptr) Variable UniformConstant
156: TypeImage 24(int) 1D array sampled format:Unknown
157: TypePointer UniformConstant 156
158(g_tTex1du4a): 157(ptr) Variable UniformConstant
159: TypeImage 6(float) 2D array sampled format:Unknown
160: TypePointer UniformConstant 159
161(g_tTex2df4a): 160(ptr) Variable UniformConstant
162: TypeImage 16(int) 2D array sampled format:Unknown
163: TypePointer UniformConstant 162
164(g_tTex2di4a): 163(ptr) Variable UniformConstant
165: TypeImage 24(int) 2D array sampled format:Unknown
166: TypePointer UniformConstant 165
167(g_tTex2du4a): 166(ptr) Variable UniformConstant
168: TypeImage 6(float) Cube array sampled format:Unknown
169: TypePointer UniformConstant 168
170(g_tTexcdf4a): 169(ptr) Variable UniformConstant
171: TypeImage 16(int) Cube array sampled format:Unknown
172: TypePointer UniformConstant 171
173(g_tTexcdi4a): 172(ptr) Variable UniformConstant
174: TypeImage 24(int) Cube array sampled format:Unknown
175: TypePointer UniformConstant 174
176(g_tTexcdu4a): 175(ptr) Variable UniformConstant
177(PerVertex_out): TypeStruct 7(fvec4)
178: TypePointer Output 177(PerVertex_out)
179(PerVertex_out): 178(ptr) Variable Output
4(main): 2 Function None 3
5: Label
116(vsout): 115(ptr) Variable Function
10: 7 Load 9(g_tTex1df4)
22: 21(ptr) AccessChain 17 18 20
23: 11(int) Load 22
25: 21(ptr) AccessChain 17 18 24
26: 11(int) Load 25
28: 27(fvec4) ImageFetch 10 23 Lod 26
32: 29 Load 31(g_tTex1di4)
33: 21(ptr) AccessChain 17 18 20
34: 11(int) Load 33
35: 21(ptr) AccessChain 17 18 24
36: 11(int) Load 35
37: 14(ivec4) ImageFetch 32 34 Lod 36
41: 38 Load 40(g_tTex1du4)
42: 21(ptr) AccessChain 17 18 20
43: 11(int) Load 42
44: 21(ptr) AccessChain 17 18 24
45: 11(int) Load 44
47: 46(ivec4) ImageFetch 41 43 Lod 45
51: 48 Load 50(g_tTex2df4)
54: 53(ptr) AccessChain 17 52
55: 13(ivec3) Load 54
56: 12(ivec2) VectorShuffle 55 55 0 1
58: 21(ptr) AccessChain 17 52 57
59: 11(int) Load 58
60: 27(fvec4) ImageFetch 51 56 Lod 59
64: 61 Load 63(g_tTex2di4)
65: 53(ptr) AccessChain 17 52
66: 13(ivec3) Load 65
67: 12(ivec2) VectorShuffle 66 66 0 1
68: 21(ptr) AccessChain 17 52 57
69: 11(int) Load 68
70: 14(ivec4) ImageFetch 64 67 Lod 69
74: 71 Load 73(g_tTex2du4)
75: 53(ptr) AccessChain 17 52
76: 13(ivec3) Load 75
77: 12(ivec2) VectorShuffle 76 76 0 1
78: 21(ptr) AccessChain 17 52 57
79: 11(int) Load 78
80: 46(ivec4) ImageFetch 74 77 Lod 79
84: 81 Load 83(g_tTex3df4)
87: 86(ptr) AccessChain 17 85
88: 14(ivec4) Load 87
89: 13(ivec3) VectorShuffle 88 88 0 1 2
91: 21(ptr) AccessChain 17 85 90
92: 11(int) Load 91
93: 27(fvec4) ImageFetch 84 89 Lod 92
97: 94 Load 96(g_tTex3di4)
98: 86(ptr) AccessChain 17 85
99: 14(ivec4) Load 98
100: 13(ivec3) VectorShuffle 99 99 0 1 2
101: 21(ptr) AccessChain 17 85 90
102: 11(int) Load 101
103: 14(ivec4) ImageFetch 97 100 Lod 102
107: 104 Load 106(g_tTex3du4)
108: 86(ptr) AccessChain 17 85
109: 14(ivec4) Load 108
110: 13(ivec3) VectorShuffle 109 109 0 1 2
111: 21(ptr) AccessChain 17 85 90
112: 11(int) Load 111
113: 46(ivec4) ImageFetch 107 110 Lod 112
121: 120(ptr) AccessChain 116(vsout) 117
Store 121 119
124: 120(ptr) AccessChain 116(vsout) 117
125: 27(fvec4) Load 124
Store 123(Pos) 125
136:8(VS_OUTPUT) FunctionCall 10(@main()
137: 7(fvec4) CompositeExtract 136 0
Store 135(@entryPointOutput_Pos) 137
Return
FunctionEnd
10(@main():8(VS_OUTPUT) Function None 9
11: Label
120(vsout): 119(ptr) Variable Function
128: 127(ptr) Variable Function
15: 12 Load 14(g_tTex1df4)
27: 26(ptr) AccessChain 22 23 25
28: 16(int) Load 27
30: 26(ptr) AccessChain 22 23 29
31: 16(int) Load 30
32: 7(fvec4) ImageFetch 15 28 Lod 31
36: 33 Load 35(g_tTex1di4)
37: 26(ptr) AccessChain 22 23 25
38: 16(int) Load 37
39: 26(ptr) AccessChain 22 23 29
40: 16(int) Load 39
41: 19(ivec4) ImageFetch 36 38 Lod 40
45: 42 Load 44(g_tTex1du4)
46: 26(ptr) AccessChain 22 23 25
47: 16(int) Load 46
48: 26(ptr) AccessChain 22 23 29
49: 16(int) Load 48
51: 50(ivec4) ImageFetch 45 47 Lod 49
55: 52 Load 54(g_tTex2df4)
58: 57(ptr) AccessChain 22 56
59: 18(ivec3) Load 58
60: 17(ivec2) VectorShuffle 59 59 0 1
62: 26(ptr) AccessChain 22 56 61
63: 16(int) Load 62
64: 7(fvec4) ImageFetch 55 60 Lod 63
68: 65 Load 67(g_tTex2di4)
69: 57(ptr) AccessChain 22 56
70: 18(ivec3) Load 69
71: 17(ivec2) VectorShuffle 70 70 0 1
72: 26(ptr) AccessChain 22 56 61
73: 16(int) Load 72
74: 19(ivec4) ImageFetch 68 71 Lod 73
78: 75 Load 77(g_tTex2du4)
79: 57(ptr) AccessChain 22 56
80: 18(ivec3) Load 79
81: 17(ivec2) VectorShuffle 80 80 0 1
82: 26(ptr) AccessChain 22 56 61
83: 16(int) Load 82
84: 50(ivec4) ImageFetch 78 81 Lod 83
88: 85 Load 87(g_tTex3df4)
91: 90(ptr) AccessChain 22 89
92: 19(ivec4) Load 91
93: 18(ivec3) VectorShuffle 92 92 0 1 2
95: 26(ptr) AccessChain 22 89 94
96: 16(int) Load 95
97: 7(fvec4) ImageFetch 88 93 Lod 96
101: 98 Load 100(g_tTex3di4)
102: 90(ptr) AccessChain 22 89
103: 19(ivec4) Load 102
104: 18(ivec3) VectorShuffle 103 103 0 1 2
105: 26(ptr) AccessChain 22 89 94
106: 16(int) Load 105
107: 19(ivec4) ImageFetch 101 104 Lod 106
111: 108 Load 110(g_tTex3du4)
112: 90(ptr) AccessChain 22 89
113: 19(ivec4) Load 112
114: 18(ivec3) VectorShuffle 113 113 0 1 2
115: 26(ptr) AccessChain 22 89 94
116: 16(int) Load 115
117: 50(ivec4) ImageFetch 111 114 Lod 116
125: 124(ptr) AccessChain 120(vsout) 121
Store 125 123
126:118(VS_OUTPUT) Load 120(vsout)
129: 7(fvec4) CompositeExtract 126 0
130: 124(ptr) AccessChain 128 121
Store 130 129
131:8(VS_OUTPUT) Load 128
ReturnValue 131
FunctionEnd