SPV return from main: Simplify a legacy design such returns are not jumps to exit block.

Structured control-flow rules allow leaving the middle of a construct through
a return, but not through a jump to a block that does a return.

Addresses issue #58.
This commit is contained in:
John Kessenich 2015-09-14 20:58:02 -06:00
parent 5f5b205ce9
commit e770b3e6cf
74 changed files with 9648 additions and 9816 deletions

View file

@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 256
// Id's are bound by 255
Source GLSL 430
Capability Shader
@ -16,330 +16,328 @@ Linked fragment stage:
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft
Name 4 "main"
Name 10 "v"
Name 14 "s2D"
Name 18 "c2D"
Name 24 "s3D"
Name 27 "c4D"
Name 35 "s2DArray"
Name 39 "c3D"
Name 48 "s2DShadow"
Name 56 "c1D"
Name 68 "ic3D"
Name 71 "ic1D"
Name 78 "ic2D"
Name 103 "sCube"
Name 114 "s2DArrayShadow"
Name 142 "iv"
Name 146 "is2D"
Name 181 "is3D"
Name 193 "isCube"
Name 205 "is2DArray"
Name 215 "iv2"
Name 219 "sCubeShadow"
Name 224 "FragData"
Name 236 "is2Dms"
Name 241 "us2D"
Name 245 "us3D"
Name 249 "usCube"
Name 253 "us2DArray"
Name 255 "ic4D"
Decorate 18(c2D) Smooth
Decorate 27(c4D) Smooth
Decorate 39(c3D) Smooth
Decorate 56(c1D) Smooth
Decorate 68(ic3D) Flat
Decorate 71(ic1D) Flat
Decorate 78(ic2D) Flat
Decorate 236(is2Dms) NoStaticUse
Decorate 241(us2D) NoStaticUse
Decorate 245(us3D) NoStaticUse
Decorate 249(usCube) NoStaticUse
Decorate 253(us2DArray) NoStaticUse
Decorate 255(ic4D) Flat
Decorate 255(ic4D) NoStaticUse
Name 9 "v"
Name 13 "s2D"
Name 17 "c2D"
Name 23 "s3D"
Name 26 "c4D"
Name 34 "s2DArray"
Name 38 "c3D"
Name 47 "s2DShadow"
Name 55 "c1D"
Name 67 "ic3D"
Name 70 "ic1D"
Name 77 "ic2D"
Name 102 "sCube"
Name 113 "s2DArrayShadow"
Name 141 "iv"
Name 145 "is2D"
Name 180 "is3D"
Name 192 "isCube"
Name 204 "is2DArray"
Name 214 "iv2"
Name 218 "sCubeShadow"
Name 223 "FragData"
Name 235 "is2Dms"
Name 240 "us2D"
Name 244 "us3D"
Name 248 "usCube"
Name 252 "us2DArray"
Name 254 "ic4D"
Decorate 17(c2D) Smooth
Decorate 26(c4D) Smooth
Decorate 38(c3D) Smooth
Decorate 55(c1D) Smooth
Decorate 67(ic3D) Flat
Decorate 70(ic1D) Flat
Decorate 77(ic2D) Flat
Decorate 235(is2Dms) NoStaticUse
Decorate 240(us2D) NoStaticUse
Decorate 244(us3D) NoStaticUse
Decorate 248(usCube) NoStaticUse
Decorate 252(us2DArray) NoStaticUse
Decorate 254(ic4D) Flat
Decorate 254(ic4D) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypeImage 7(float) 2D sampled format:Unknown
12: TypeSampledImage 11
13: TypePointer UniformConstant 12
14(s2D): 13(ptr) Variable UniformConstant
16: TypeVector 7(float) 2
17: TypePointer Input 16(fvec2)
18(c2D): 17(ptr) Variable Input
21: TypeImage 7(float) 3D sampled format:Unknown
22: TypeSampledImage 21
23: TypePointer UniformConstant 22
24(s3D): 23(ptr) Variable UniformConstant
26: TypePointer Input 8(fvec4)
27(c4D): 26(ptr) Variable Input
32: TypeImage 7(float) 2D array sampled format:Unknown
33: TypeSampledImage 32
34: TypePointer UniformConstant 33
35(s2DArray): 34(ptr) Variable UniformConstant
37: TypeVector 7(float) 3
38: TypePointer Input 37(fvec3)
39(c3D): 38(ptr) Variable Input
41: 7(float) Constant 1067030938
45: TypeImage 7(float) 2D depth sampled format:Unknown
46: TypeSampledImage 45
47: TypePointer UniformConstant 46
48(s2DShadow): 47(ptr) Variable UniformConstant
51: TypeInt 32 1
52: TypeVector 51(int) 2
53: 51(int) Constant 3
54: 52(ivec2) ConstantComposite 53 53
55: TypePointer Input 7(float)
56(c1D): 55(ptr) Variable Input
66: TypeVector 51(int) 3
67: TypePointer Input 66(ivec3)
68(ic3D): 67(ptr) Variable Input
70: TypePointer Input 51(int)
71(ic1D): 70(ptr) Variable Input
77: TypePointer Input 52(ivec2)
78(ic2D): 77(ptr) Variable Input
80: 51(int) Constant 4
100: TypeImage 7(float) Cube sampled format:Unknown
101: TypeSampledImage 100
102: TypePointer UniformConstant 101
103(sCube): 102(ptr) Variable UniformConstant
111: TypeImage 7(float) 2D depth array sampled format:Unknown
112: TypeSampledImage 111
113: TypePointer UniformConstant 112
114(s2DArrayShadow): 113(ptr) Variable UniformConstant
140: TypeVector 51(int) 4
141: TypePointer Function 140(ivec4)
143: TypeImage 51(int) 2D sampled format:Unknown
144: TypeSampledImage 143
145: TypePointer UniformConstant 144
146(is2D): 145(ptr) Variable UniformConstant
178: TypeImage 51(int) 3D sampled format:Unknown
179: TypeSampledImage 178
180: TypePointer UniformConstant 179
181(is3D): 180(ptr) Variable UniformConstant
184: 7(float) Constant 1082549862
190: TypeImage 51(int) Cube sampled format:Unknown
191: TypeSampledImage 190
192: TypePointer UniformConstant 191
193(isCube): 192(ptr) Variable UniformConstant
202: TypeImage 51(int) 2D array sampled format:Unknown
203: TypeSampledImage 202
204: TypePointer UniformConstant 203
205(is2DArray): 204(ptr) Variable UniformConstant
214: TypePointer Function 52(ivec2)
216: TypeImage 7(float) Cube depth sampled format:Unknown
217: TypeSampledImage 216
218: TypePointer UniformConstant 217
219(sCubeShadow): 218(ptr) Variable UniformConstant
221: 51(int) Constant 2
223: TypePointer Output 8(fvec4)
224(FragData): 223(ptr) Variable Output
228: 7(float) Constant 0
233: TypeImage 51(int) 2D multi-sampled sampled format:Unknown
234: TypeSampledImage 233
235: TypePointer UniformConstant 234
236(is2Dms): 235(ptr) Variable UniformConstant
237: TypeInt 32 0
238: TypeImage 237(int) 2D sampled format:Unknown
239: TypeSampledImage 238
240: TypePointer UniformConstant 239
241(us2D): 240(ptr) Variable UniformConstant
242: TypeImage 237(int) 3D sampled format:Unknown
243: TypeSampledImage 242
244: TypePointer UniformConstant 243
245(us3D): 244(ptr) Variable UniformConstant
246: TypeImage 237(int) Cube sampled format:Unknown
247: TypeSampledImage 246
248: TypePointer UniformConstant 247
249(usCube): 248(ptr) Variable UniformConstant
250: TypeImage 237(int) 2D array sampled format:Unknown
251: TypeSampledImage 250
252: TypePointer UniformConstant 251
253(us2DArray): 252(ptr) Variable UniformConstant
254: TypePointer Input 140(ivec4)
255(ic4D): 254(ptr) Variable Input
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypeImage 6(float) 2D sampled format:Unknown
11: TypeSampledImage 10
12: TypePointer UniformConstant 11
13(s2D): 12(ptr) Variable UniformConstant
15: TypeVector 6(float) 2
16: TypePointer Input 15(fvec2)
17(c2D): 16(ptr) Variable Input
20: TypeImage 6(float) 3D sampled format:Unknown
21: TypeSampledImage 20
22: TypePointer UniformConstant 21
23(s3D): 22(ptr) Variable UniformConstant
25: TypePointer Input 7(fvec4)
26(c4D): 25(ptr) Variable Input
31: TypeImage 6(float) 2D array sampled format:Unknown
32: TypeSampledImage 31
33: TypePointer UniformConstant 32
34(s2DArray): 33(ptr) Variable UniformConstant
36: TypeVector 6(float) 3
37: TypePointer Input 36(fvec3)
38(c3D): 37(ptr) Variable Input
40: 6(float) Constant 1067030938
44: TypeImage 6(float) 2D depth sampled format:Unknown
45: TypeSampledImage 44
46: TypePointer UniformConstant 45
47(s2DShadow): 46(ptr) Variable UniformConstant
50: TypeInt 32 1
51: TypeVector 50(int) 2
52: 50(int) Constant 3
53: 51(ivec2) ConstantComposite 52 52
54: TypePointer Input 6(float)
55(c1D): 54(ptr) Variable Input
65: TypeVector 50(int) 3
66: TypePointer Input 65(ivec3)
67(ic3D): 66(ptr) Variable Input
69: TypePointer Input 50(int)
70(ic1D): 69(ptr) Variable Input
76: TypePointer Input 51(ivec2)
77(ic2D): 76(ptr) Variable Input
79: 50(int) Constant 4
99: TypeImage 6(float) Cube sampled format:Unknown
100: TypeSampledImage 99
101: TypePointer UniformConstant 100
102(sCube): 101(ptr) Variable UniformConstant
110: TypeImage 6(float) 2D depth array sampled format:Unknown
111: TypeSampledImage 110
112: TypePointer UniformConstant 111
113(s2DArrayShadow): 112(ptr) Variable UniformConstant
139: TypeVector 50(int) 4
140: TypePointer Function 139(ivec4)
142: TypeImage 50(int) 2D sampled format:Unknown
143: TypeSampledImage 142
144: TypePointer UniformConstant 143
145(is2D): 144(ptr) Variable UniformConstant
177: TypeImage 50(int) 3D sampled format:Unknown
178: TypeSampledImage 177
179: TypePointer UniformConstant 178
180(is3D): 179(ptr) Variable UniformConstant
183: 6(float) Constant 1082549862
189: TypeImage 50(int) Cube sampled format:Unknown
190: TypeSampledImage 189
191: TypePointer UniformConstant 190
192(isCube): 191(ptr) Variable UniformConstant
201: TypeImage 50(int) 2D array sampled format:Unknown
202: TypeSampledImage 201
203: TypePointer UniformConstant 202
204(is2DArray): 203(ptr) Variable UniformConstant
213: TypePointer Function 51(ivec2)
215: TypeImage 6(float) Cube depth sampled format:Unknown
216: TypeSampledImage 215
217: TypePointer UniformConstant 216
218(sCubeShadow): 217(ptr) Variable UniformConstant
220: 50(int) Constant 2
222: TypePointer Output 7(fvec4)
223(FragData): 222(ptr) Variable Output
227: 6(float) Constant 0
232: TypeImage 50(int) 2D multi-sampled sampled format:Unknown
233: TypeSampledImage 232
234: TypePointer UniformConstant 233
235(is2Dms): 234(ptr) Variable UniformConstant
236: TypeInt 32 0
237: TypeImage 236(int) 2D sampled format:Unknown
238: TypeSampledImage 237
239: TypePointer UniformConstant 238
240(us2D): 239(ptr) Variable UniformConstant
241: TypeImage 236(int) 3D sampled format:Unknown
242: TypeSampledImage 241
243: TypePointer UniformConstant 242
244(us3D): 243(ptr) Variable UniformConstant
245: TypeImage 236(int) Cube sampled format:Unknown
246: TypeSampledImage 245
247: TypePointer UniformConstant 246
248(usCube): 247(ptr) Variable UniformConstant
249: TypeImage 236(int) 2D array sampled format:Unknown
250: TypeSampledImage 249
251: TypePointer UniformConstant 250
252(us2DArray): 251(ptr) Variable UniformConstant
253: TypePointer Input 139(ivec4)
254(ic4D): 253(ptr) Variable Input
4(main): 2 Function None 3
5: Label
10(v): 9(ptr) Variable Function
142(iv): 141(ptr) Variable Function
215(iv2): 214(ptr) Variable Function
15: 12 Load 14(s2D)
19: 16(fvec2) Load 18(c2D)
20: 8(fvec4) ImageSampleImplicitLod 15 19
Store 10(v) 20
25: 22 Load 24(s3D)
28: 8(fvec4) Load 27(c4D)
29: 8(fvec4) ImageSampleProjImplicitLod 25 28
30: 8(fvec4) Load 10(v)
31: 8(fvec4) FAdd 30 29
Store 10(v) 31
36: 33 Load 35(s2DArray)
40: 37(fvec3) Load 39(c3D)
42: 8(fvec4) ImageSampleExplicitLod 36 40 41
43: 8(fvec4) Load 10(v)
44: 8(fvec4) FAdd 43 42
Store 10(v) 44
49: 46 Load 48(s2DShadow)
50: 37(fvec3) Load 39(c3D)
57: 7(float) Load 56(c1D)
58: 7(float) CompositeExtract 50 2
59: 7(float) ImageSampleDrefImplicitLod 49 50 58 57 54
60: 8(fvec4) Load 10(v)
61: 7(float) CompositeExtract 60 1
62: 7(float) FAdd 61 59
63: 8(fvec4) Load 10(v)
64: 8(fvec4) CompositeInsert 62 63 1
Store 10(v) 64
65: 22 Load 24(s3D)
69: 66(ivec3) Load 68(ic3D)
72: 51(int) Load 71(ic1D)
73: 8(fvec4) ImageFetch 65 69
74: 8(fvec4) Load 10(v)
75: 8(fvec4) FAdd 74 73
Store 10(v) 75
76: 12 Load 14(s2D)
79: 52(ivec2) Load 78(ic2D)
81: 8(fvec4) ImageFetch 76 79 80
82: 8(fvec4) Load 10(v)
83: 8(fvec4) FAdd 82 81
Store 10(v) 83
84: 46 Load 48(s2DShadow)
85: 37(fvec3) Load 39(c3D)
86: 7(float) Load 56(c1D)
87: 7(float) CompositeExtract 85 2
88: 7(float) ImageSampleDrefExplicitLod 84 85 87 86 54
89: 8(fvec4) Load 10(v)
90: 7(float) CompositeExtract 89 1
91: 7(float) FAdd 90 88
92: 8(fvec4) Load 10(v)
93: 8(fvec4) CompositeInsert 91 92 1
Store 10(v) 93
94: 12 Load 14(s2D)
95: 37(fvec3) Load 39(c3D)
96: 7(float) Load 56(c1D)
97: 8(fvec4) ImageSampleProjExplicitLod 94 95 96 54
98: 8(fvec4) Load 10(v)
99: 8(fvec4) FAdd 98 97
Store 10(v) 99
104: 101 Load 103(sCube)
105: 37(fvec3) Load 39(c3D)
106: 37(fvec3) Load 39(c3D)
107: 37(fvec3) Load 39(c3D)
108: 8(fvec4) ImageSampleExplicitLod 104 105 106 107
109: 8(fvec4) Load 10(v)
110: 8(fvec4) FAdd 109 108
Store 10(v) 110
115: 112 Load 114(s2DArrayShadow)
116: 8(fvec4) Load 27(c4D)
117: 16(fvec2) Load 18(c2D)
118: 16(fvec2) Load 18(c2D)
119: 7(float) CompositeExtract 116 3
120: 7(float) ImageSampleDrefExplicitLod 115 116 119 117 118 54
121: 8(fvec4) Load 10(v)
122: 7(float) CompositeExtract 121 0
123: 7(float) FAdd 122 120
124: 8(fvec4) Load 10(v)
125: 8(fvec4) CompositeInsert 123 124 0
Store 10(v) 125
126: 22 Load 24(s3D)
127: 8(fvec4) Load 27(c4D)
128: 37(fvec3) Load 39(c3D)
129: 37(fvec3) Load 39(c3D)
130: 8(fvec4) ImageSampleProjExplicitLod 126 127 128 129
131: 8(fvec4) Load 10(v)
132: 8(fvec4) FAdd 131 130
Store 10(v) 132
133: 12 Load 14(s2D)
134: 37(fvec3) Load 39(c3D)
135: 16(fvec2) Load 18(c2D)
136: 16(fvec2) Load 18(c2D)
137: 8(fvec4) ImageSampleProjExplicitLod 133 134 135 136 54
138: 8(fvec4) Load 10(v)
139: 8(fvec4) FAdd 138 137
Store 10(v) 139
147: 144 Load 146(is2D)
148: 16(fvec2) Load 18(c2D)
149: 140(ivec4) ImageSampleImplicitLod 147 148
Store 142(iv) 149
150: 140(ivec4) Load 142(iv)
151: 8(fvec4) ConvertSToF 150
152: 8(fvec4) Load 10(v)
153: 8(fvec4) FAdd 152 151
Store 10(v) 153
154: 144 Load 146(is2D)
155: 8(fvec4) Load 27(c4D)
156: 140(ivec4) ImageSampleProjImplicitLod 154 155 54
Store 142(iv) 156
157: 140(ivec4) Load 142(iv)
158: 8(fvec4) ConvertSToF 157
159: 8(fvec4) Load 10(v)
160: 8(fvec4) FAdd 159 158
Store 10(v) 160
161: 144 Load 146(is2D)
162: 37(fvec3) Load 39(c3D)
163: 7(float) Load 56(c1D)
164: 140(ivec4) ImageSampleProjExplicitLod 161 162 163
Store 142(iv) 164
165: 140(ivec4) Load 142(iv)
166: 8(fvec4) ConvertSToF 165
167: 8(fvec4) Load 10(v)
168: 8(fvec4) FAdd 167 166
Store 10(v) 168
169: 144 Load 146(is2D)
170: 37(fvec3) Load 39(c3D)
171: 16(fvec2) Load 18(c2D)
172: 16(fvec2) Load 18(c2D)
173: 140(ivec4) ImageSampleProjExplicitLod 169 170 171 172
Store 142(iv) 173
174: 140(ivec4) Load 142(iv)
175: 8(fvec4) ConvertSToF 174
176: 8(fvec4) Load 10(v)
177: 8(fvec4) FAdd 176 175
Store 10(v) 177
182: 179 Load 181(is3D)
183: 37(fvec3) Load 39(c3D)
185: 140(ivec4) ImageSampleImplicitLod 182 183 184
Store 142(iv) 185
186: 140(ivec4) Load 142(iv)
187: 8(fvec4) ConvertSToF 186
188: 8(fvec4) Load 10(v)
189: 8(fvec4) FAdd 188 187
Store 10(v) 189
194: 191 Load 193(isCube)
195: 37(fvec3) Load 39(c3D)
196: 7(float) Load 56(c1D)
197: 140(ivec4) ImageSampleExplicitLod 194 195 196
Store 142(iv) 197
198: 140(ivec4) Load 142(iv)
199: 8(fvec4) ConvertSToF 198
200: 8(fvec4) Load 10(v)
201: 8(fvec4) FAdd 200 199
Store 10(v) 201
206: 203 Load 205(is2DArray)
207: 66(ivec3) Load 68(ic3D)
208: 51(int) Load 71(ic1D)
209: 140(ivec4) ImageFetch 206 207
Store 142(iv) 209
210: 140(ivec4) Load 142(iv)
211: 8(fvec4) ConvertSToF 210
212: 8(fvec4) Load 10(v)
213: 8(fvec4) FAdd 212 211
Store 10(v) 213
220: 217 Load 219(sCubeShadow)
222: 52(ivec2) ImageQuerySizeLod 220 221
Store 215(iv2) 222
225: 8(fvec4) Load 10(v)
226: 52(ivec2) Load 215(iv2)
227: 16(fvec2) ConvertSToF 226
229: 7(float) CompositeExtract 227 0
230: 7(float) CompositeExtract 227 1
231: 8(fvec4) CompositeConstruct 229 230 228 228
232: 8(fvec4) FAdd 225 231
Store 224(FragData) 232
Branch 6
6: Label
9(v): 8(ptr) Variable Function
141(iv): 140(ptr) Variable Function
214(iv2): 213(ptr) Variable Function
14: 11 Load 13(s2D)
18: 15(fvec2) Load 17(c2D)
19: 7(fvec4) ImageSampleImplicitLod 14 18
Store 9(v) 19
24: 21 Load 23(s3D)
27: 7(fvec4) Load 26(c4D)
28: 7(fvec4) ImageSampleProjImplicitLod 24 27
29: 7(fvec4) Load 9(v)
30: 7(fvec4) FAdd 29 28
Store 9(v) 30
35: 32 Load 34(s2DArray)
39: 36(fvec3) Load 38(c3D)
41: 7(fvec4) ImageSampleExplicitLod 35 39 40
42: 7(fvec4) Load 9(v)
43: 7(fvec4) FAdd 42 41
Store 9(v) 43
48: 45 Load 47(s2DShadow)
49: 36(fvec3) Load 38(c3D)
56: 6(float) Load 55(c1D)
57: 6(float) CompositeExtract 49 2
58: 6(float) ImageSampleDrefImplicitLod 48 49 57 56 53
59: 7(fvec4) Load 9(v)
60: 6(float) CompositeExtract 59 1
61: 6(float) FAdd 60 58
62: 7(fvec4) Load 9(v)
63: 7(fvec4) CompositeInsert 61 62 1
Store 9(v) 63
64: 21 Load 23(s3D)
68: 65(ivec3) Load 67(ic3D)
71: 50(int) Load 70(ic1D)
72: 7(fvec4) ImageFetch 64 68
73: 7(fvec4) Load 9(v)
74: 7(fvec4) FAdd 73 72
Store 9(v) 74
75: 11 Load 13(s2D)
78: 51(ivec2) Load 77(ic2D)
80: 7(fvec4) ImageFetch 75 78 79
81: 7(fvec4) Load 9(v)
82: 7(fvec4) FAdd 81 80
Store 9(v) 82
83: 45 Load 47(s2DShadow)
84: 36(fvec3) Load 38(c3D)
85: 6(float) Load 55(c1D)
86: 6(float) CompositeExtract 84 2
87: 6(float) ImageSampleDrefExplicitLod 83 84 86 85 53
88: 7(fvec4) Load 9(v)
89: 6(float) CompositeExtract 88 1
90: 6(float) FAdd 89 87
91: 7(fvec4) Load 9(v)
92: 7(fvec4) CompositeInsert 90 91 1
Store 9(v) 92
93: 11 Load 13(s2D)
94: 36(fvec3) Load 38(c3D)
95: 6(float) Load 55(c1D)
96: 7(fvec4) ImageSampleProjExplicitLod 93 94 95 53
97: 7(fvec4) Load 9(v)
98: 7(fvec4) FAdd 97 96
Store 9(v) 98
103: 100 Load 102(sCube)
104: 36(fvec3) Load 38(c3D)
105: 36(fvec3) Load 38(c3D)
106: 36(fvec3) Load 38(c3D)
107: 7(fvec4) ImageSampleExplicitLod 103 104 105 106
108: 7(fvec4) Load 9(v)
109: 7(fvec4) FAdd 108 107
Store 9(v) 109
114: 111 Load 113(s2DArrayShadow)
115: 7(fvec4) Load 26(c4D)
116: 15(fvec2) Load 17(c2D)
117: 15(fvec2) Load 17(c2D)
118: 6(float) CompositeExtract 115 3
119: 6(float) ImageSampleDrefExplicitLod 114 115 118 116 117 53
120: 7(fvec4) Load 9(v)
121: 6(float) CompositeExtract 120 0
122: 6(float) FAdd 121 119
123: 7(fvec4) Load 9(v)
124: 7(fvec4) CompositeInsert 122 123 0
Store 9(v) 124
125: 21 Load 23(s3D)
126: 7(fvec4) Load 26(c4D)
127: 36(fvec3) Load 38(c3D)
128: 36(fvec3) Load 38(c3D)
129: 7(fvec4) ImageSampleProjExplicitLod 125 126 127 128
130: 7(fvec4) Load 9(v)
131: 7(fvec4) FAdd 130 129
Store 9(v) 131
132: 11 Load 13(s2D)
133: 36(fvec3) Load 38(c3D)
134: 15(fvec2) Load 17(c2D)
135: 15(fvec2) Load 17(c2D)
136: 7(fvec4) ImageSampleProjExplicitLod 132 133 134 135 53
137: 7(fvec4) Load 9(v)
138: 7(fvec4) FAdd 137 136
Store 9(v) 138
146: 143 Load 145(is2D)
147: 15(fvec2) Load 17(c2D)
148: 139(ivec4) ImageSampleImplicitLod 146 147
Store 141(iv) 148
149: 139(ivec4) Load 141(iv)
150: 7(fvec4) ConvertSToF 149
151: 7(fvec4) Load 9(v)
152: 7(fvec4) FAdd 151 150
Store 9(v) 152
153: 143 Load 145(is2D)
154: 7(fvec4) Load 26(c4D)
155: 139(ivec4) ImageSampleProjImplicitLod 153 154 53
Store 141(iv) 155
156: 139(ivec4) Load 141(iv)
157: 7(fvec4) ConvertSToF 156
158: 7(fvec4) Load 9(v)
159: 7(fvec4) FAdd 158 157
Store 9(v) 159
160: 143 Load 145(is2D)
161: 36(fvec3) Load 38(c3D)
162: 6(float) Load 55(c1D)
163: 139(ivec4) ImageSampleProjExplicitLod 160 161 162
Store 141(iv) 163
164: 139(ivec4) Load 141(iv)
165: 7(fvec4) ConvertSToF 164
166: 7(fvec4) Load 9(v)
167: 7(fvec4) FAdd 166 165
Store 9(v) 167
168: 143 Load 145(is2D)
169: 36(fvec3) Load 38(c3D)
170: 15(fvec2) Load 17(c2D)
171: 15(fvec2) Load 17(c2D)
172: 139(ivec4) ImageSampleProjExplicitLod 168 169 170 171
Store 141(iv) 172
173: 139(ivec4) Load 141(iv)
174: 7(fvec4) ConvertSToF 173
175: 7(fvec4) Load 9(v)
176: 7(fvec4) FAdd 175 174
Store 9(v) 176
181: 178 Load 180(is3D)
182: 36(fvec3) Load 38(c3D)
184: 139(ivec4) ImageSampleImplicitLod 181 182 183
Store 141(iv) 184
185: 139(ivec4) Load 141(iv)
186: 7(fvec4) ConvertSToF 185
187: 7(fvec4) Load 9(v)
188: 7(fvec4) FAdd 187 186
Store 9(v) 188
193: 190 Load 192(isCube)
194: 36(fvec3) Load 38(c3D)
195: 6(float) Load 55(c1D)
196: 139(ivec4) ImageSampleExplicitLod 193 194 195
Store 141(iv) 196
197: 139(ivec4) Load 141(iv)
198: 7(fvec4) ConvertSToF 197
199: 7(fvec4) Load 9(v)
200: 7(fvec4) FAdd 199 198
Store 9(v) 200
205: 202 Load 204(is2DArray)
206: 65(ivec3) Load 67(ic3D)
207: 50(int) Load 70(ic1D)
208: 139(ivec4) ImageFetch 205 206
Store 141(iv) 208
209: 139(ivec4) Load 141(iv)
210: 7(fvec4) ConvertSToF 209
211: 7(fvec4) Load 9(v)
212: 7(fvec4) FAdd 211 210
Store 9(v) 212
219: 216 Load 218(sCubeShadow)
221: 51(ivec2) ImageQuerySizeLod 219 220
Store 214(iv2) 221
224: 7(fvec4) Load 9(v)
225: 51(ivec2) Load 214(iv2)
226: 15(fvec2) ConvertSToF 225
228: 6(float) CompositeExtract 226 0
229: 6(float) CompositeExtract 226 1
230: 7(fvec4) CompositeConstruct 228 229 227 227
231: 7(fvec4) FAdd 224 230
Store 223(FragData) 231
Return
FunctionEnd