1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 8
4; Bound: 189
5; Schema: 0
6               OpCapability Shader
7               OpCapability ImageQuery
8          %1 = OpExtInstImport "GLSL.std.450"
9               OpMemoryModel Logical GLSL450
10               OpEntryPoint Fragment %main "main" %c2D %c4D %c3D %ic3D %ic1D %c1D %ic4D %s2 %sc %sf
11               OpExecutionMode %main OriginUpperLeft
12               OpSource ESSL 310
13               OpName %main "main"
14               OpName %v "v"
15               OpName %s2D "s2D"
16               OpName %c2D "c2D"
17               OpName %s3D "s3D"
18               OpName %c4D "c4D"
19               OpName %s2DArray "s2DArray"
20               OpName %c3D "c3D"
21               OpName %ic3D "ic3D"
22               OpName %ic1D "ic1D"
23               OpName %f "f"
24               OpName %s2DShadow "s2DShadow"
25               OpName %c1D "c1D"
26               OpName %sCube "sCube"
27               OpName %s2DArrayShadow "s2DArrayShadow"
28               OpName %iv "iv"
29               OpName %is2D "is2D"
30               OpName %is3D "is3D"
31               OpName %isCube "isCube"
32               OpName %is2DArray "is2DArray"
33               OpName %sCubeShadow "sCubeShadow"
34               OpName %us2D "us2D"
35               OpName %us3D "us3D"
36               OpName %usCube "usCube"
37               OpName %us2DArray "us2DArray"
38               OpName %ic4D "ic4D"
39               OpName %S2 "S2"
40               OpMemberName %S2 0 "c"
41               OpMemberName %S2 1 "f"
42               OpName %s2 "s2"
43               OpName %sc "sc"
44               OpName %sf "sf"
45               OpName %arrayedSampler "arrayedSampler"
46               OpDecorate %v RelaxedPrecision
47               OpDecorate %s2D RelaxedPrecision
48               OpDecorate %s2D DescriptorSet 0
49               OpDecorate %s2D Binding 1
50               OpDecorate %14 RelaxedPrecision
51               OpDecorate %c2D RelaxedPrecision
52               OpDecorate %c2D Location 5
53               OpDecorate %18 RelaxedPrecision
54               OpDecorate %19 RelaxedPrecision
55               OpDecorate %s3D RelaxedPrecision
56               OpDecorate %s3D DescriptorSet 0
57               OpDecorate %s3D Binding 2
58               OpDecorate %24 RelaxedPrecision
59               OpDecorate %c4D RelaxedPrecision
60               OpDecorate %c4D Location 7
61               OpDecorate %27 RelaxedPrecision
62               OpDecorate %28 RelaxedPrecision
63               OpDecorate %s2DArray RelaxedPrecision
64               OpDecorate %s2DArray DescriptorSet 0
65               OpDecorate %s2DArray Binding 6
66               OpDecorate %33 RelaxedPrecision
67               OpDecorate %c3D RelaxedPrecision
68               OpDecorate %c3D Location 6
69               OpDecorate %37 RelaxedPrecision
70               OpDecorate %39 RelaxedPrecision
71               OpDecorate %40 RelaxedPrecision
72               OpDecorate %ic3D RelaxedPrecision
73               OpDecorate %ic3D Flat
74               OpDecorate %ic3D Location 2
75               OpDecorate %45 RelaxedPrecision
76               OpDecorate %ic1D RelaxedPrecision
77               OpDecorate %ic1D Flat
78               OpDecorate %ic1D Location 1
79               OpDecorate %48 RelaxedPrecision
80               OpDecorate %50 RelaxedPrecision
81               OpDecorate %f RelaxedPrecision
82               OpDecorate %s2DShadow RelaxedPrecision
83               OpDecorate %s2DShadow DescriptorSet 0
84               OpDecorate %s2DShadow Binding 5
85               OpDecorate %57 RelaxedPrecision
86               OpDecorate %58 RelaxedPrecision
87               OpDecorate %c1D RelaxedPrecision
88               OpDecorate %c1D Location 4
89               OpDecorate %61 RelaxedPrecision
90               OpDecorate %67 RelaxedPrecision
91               OpDecorate %68 RelaxedPrecision
92               OpDecorate %69 RelaxedPrecision
93               OpDecorate %70 RelaxedPrecision
94               OpDecorate %71 RelaxedPrecision
95               OpDecorate %sCube RelaxedPrecision
96               OpDecorate %sCube DescriptorSet 0
97               OpDecorate %sCube Binding 3
98               OpDecorate %76 RelaxedPrecision
99               OpDecorate %77 RelaxedPrecision
100               OpDecorate %78 RelaxedPrecision
101               OpDecorate %79 RelaxedPrecision
102               OpDecorate %80 RelaxedPrecision
103               OpDecorate %s2DArrayShadow RelaxedPrecision
104               OpDecorate %s2DArrayShadow DescriptorSet 0
105               OpDecorate %s2DArrayShadow Binding 7
106               OpDecorate %85 RelaxedPrecision
107               OpDecorate %86 RelaxedPrecision
108               OpDecorate %87 RelaxedPrecision
109               OpDecorate %88 RelaxedPrecision
110               OpDecorate %90 RelaxedPrecision
111               OpDecorate %91 RelaxedPrecision
112               OpDecorate %92 RelaxedPrecision
113               OpDecorate %93 RelaxedPrecision
114               OpDecorate %94 RelaxedPrecision
115               OpDecorate %95 RelaxedPrecision
116               OpDecorate %96 RelaxedPrecision
117               OpDecorate %97 RelaxedPrecision
118               OpDecorate %98 RelaxedPrecision
119               OpDecorate %99 RelaxedPrecision
120               OpDecorate %100 RelaxedPrecision
121               OpDecorate %iv RelaxedPrecision
122               OpDecorate %is2D RelaxedPrecision
123               OpDecorate %is2D DescriptorSet 0
124               OpDecorate %is2D Binding 8
125               OpDecorate %108 RelaxedPrecision
126               OpDecorate %109 RelaxedPrecision
127               OpDecorate %110 RelaxedPrecision
128               OpDecorate %111 RelaxedPrecision
129               OpDecorate %112 RelaxedPrecision
130               OpDecorate %115 RelaxedPrecision
131               OpDecorate %116 RelaxedPrecision
132               OpDecorate %117 RelaxedPrecision
133               OpDecorate %118 RelaxedPrecision
134               OpDecorate %119 RelaxedPrecision
135               OpDecorate %120 RelaxedPrecision
136               OpDecorate %121 RelaxedPrecision
137               OpDecorate %122 RelaxedPrecision
138               OpDecorate %123 RelaxedPrecision
139               OpDecorate %124 RelaxedPrecision
140               OpDecorate %is3D RelaxedPrecision
141               OpDecorate %is3D DescriptorSet 0
142               OpDecorate %is3D Binding 9
143               OpDecorate %129 RelaxedPrecision
144               OpDecorate %130 RelaxedPrecision
145               OpDecorate %132 RelaxedPrecision
146               OpDecorate %isCube RelaxedPrecision
147               OpDecorate %isCube DescriptorSet 0
148               OpDecorate %isCube Binding 10
149               OpDecorate %137 RelaxedPrecision
150               OpDecorate %138 RelaxedPrecision
151               OpDecorate %139 RelaxedPrecision
152               OpDecorate %140 RelaxedPrecision
153               OpDecorate %is2DArray RelaxedPrecision
154               OpDecorate %is2DArray DescriptorSet 0
155               OpDecorate %is2DArray Binding 11
156               OpDecorate %145 RelaxedPrecision
157               OpDecorate %146 RelaxedPrecision
158               OpDecorate %147 RelaxedPrecision
159               OpDecorate %149 RelaxedPrecision
160               OpDecorate %sCubeShadow RelaxedPrecision
161               OpDecorate %sCubeShadow DescriptorSet 0
162               OpDecorate %sCubeShadow Binding 4
163               OpDecorate %154 RelaxedPrecision
164               OpDecorate %us2D RelaxedPrecision
165               OpDecorate %us2D DescriptorSet 0
166               OpDecorate %us2D Binding 12
167               OpDecorate %us3D RelaxedPrecision
168               OpDecorate %us3D DescriptorSet 0
169               OpDecorate %us3D Binding 13
170               OpDecorate %usCube RelaxedPrecision
171               OpDecorate %usCube DescriptorSet 0
172               OpDecorate %usCube Binding 14
173               OpDecorate %us2DArray RelaxedPrecision
174               OpDecorate %us2DArray DescriptorSet 0
175               OpDecorate %us2DArray Binding 15
176               OpDecorate %ic4D RelaxedPrecision
177               OpDecorate %ic4D Flat
178               OpDecorate %ic4D Location 3
179               OpDecorate %65 RelaxedPrecision
180               OpMemberDecorate %S2 0 RelaxedPrecision
181               OpMemberDecorate %S2 1 RelaxedPrecision
182               OpDecorate %s2 Location 8
183               OpDecorate %sc RelaxedPrecision
184               OpDecorate %sc Location 0
185               OpDecorate %sf RelaxedPrecision
186               OpDecorate %sf Location 1
187               OpDecorate %arrayedSampler RelaxedPrecision
188               OpDecorate %arrayedSampler DescriptorSet 0
189               OpDecorate %arrayedSampler Binding 0
190       %void = OpTypeVoid
191          %3 = OpTypeFunction %void
192      %float = OpTypeFloat 32
193    %v4float = OpTypeVector %float 4
194%_ptr_Function_v4float = OpTypePointer Function %v4float
195         %10 = OpTypeImage %float 2D 0 0 0 1 Unknown
196         %11 = OpTypeSampledImage %10
197%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
198        %s2D = OpVariable %_ptr_UniformConstant_11 UniformConstant
199    %v2float = OpTypeVector %float 2
200%_ptr_Input_v2float = OpTypePointer Input %v2float
201        %c2D = OpVariable %_ptr_Input_v2float Input
202         %20 = OpTypeImage %float 3D 0 0 0 1 Unknown
203         %21 = OpTypeSampledImage %20
204%_ptr_UniformConstant_21 = OpTypePointer UniformConstant %21
205        %s3D = OpVariable %_ptr_UniformConstant_21 UniformConstant
206%_ptr_Input_v4float = OpTypePointer Input %v4float
207        %c4D = OpVariable %_ptr_Input_v4float Input
208         %29 = OpTypeImage %float 2D 0 1 0 1 Unknown
209         %30 = OpTypeSampledImage %29
210%_ptr_UniformConstant_30 = OpTypePointer UniformConstant %30
211   %s2DArray = OpVariable %_ptr_UniformConstant_30 UniformConstant
212    %v3float = OpTypeVector %float 3
213%_ptr_Input_v3float = OpTypePointer Input %v3float
214        %c3D = OpVariable %_ptr_Input_v3float Input
215%float_1_20000005 = OpConstant %float 1.20000005
216        %int = OpTypeInt 32 1
217      %v3int = OpTypeVector %int 3
218%_ptr_Input_v3int = OpTypePointer Input %v3int
219       %ic3D = OpVariable %_ptr_Input_v3int Input
220%_ptr_Input_int = OpTypePointer Input %int
221       %ic1D = OpVariable %_ptr_Input_int Input
222%_ptr_Function_float = OpTypePointer Function %float
223         %53 = OpTypeImage %float 2D 1 0 0 1 Unknown
224         %54 = OpTypeSampledImage %53
225%_ptr_UniformConstant_54 = OpTypePointer UniformConstant %54
226  %s2DShadow = OpVariable %_ptr_UniformConstant_54 UniformConstant
227%_ptr_Input_float = OpTypePointer Input %float
228        %c1D = OpVariable %_ptr_Input_float Input
229      %v2int = OpTypeVector %int 2
230      %int_2 = OpConstant %int 2
231      %int_3 = OpConstant %int 3
232         %65 = OpConstantComposite %v2int %int_2 %int_3
233         %72 = OpTypeImage %float Cube 0 0 0 1 Unknown
234         %73 = OpTypeSampledImage %72
235%_ptr_UniformConstant_73 = OpTypePointer UniformConstant %73
236      %sCube = OpVariable %_ptr_UniformConstant_73 UniformConstant
237         %81 = OpTypeImage %float 2D 1 1 0 1 Unknown
238         %82 = OpTypeSampledImage %81
239%_ptr_UniformConstant_82 = OpTypePointer UniformConstant %82
240%s2DArrayShadow = OpVariable %_ptr_UniformConstant_82 UniformConstant
241      %v4int = OpTypeVector %int 4
242%_ptr_Function_v4int = OpTypePointer Function %v4int
243        %104 = OpTypeImage %int 2D 0 0 0 1 Unknown
244        %105 = OpTypeSampledImage %104
245%_ptr_UniformConstant_105 = OpTypePointer UniformConstant %105
246       %is2D = OpVariable %_ptr_UniformConstant_105 UniformConstant
247        %125 = OpTypeImage %int 3D 0 0 0 1 Unknown
248        %126 = OpTypeSampledImage %125
249%_ptr_UniformConstant_126 = OpTypePointer UniformConstant %126
250       %is3D = OpVariable %_ptr_UniformConstant_126 UniformConstant
251%float_4_19999981 = OpConstant %float 4.19999981
252        %133 = OpTypeImage %int Cube 0 0 0 1 Unknown
253        %134 = OpTypeSampledImage %133
254%_ptr_UniformConstant_134 = OpTypePointer UniformConstant %134
255     %isCube = OpVariable %_ptr_UniformConstant_134 UniformConstant
256        %141 = OpTypeImage %int 2D 0 1 0 1 Unknown
257        %142 = OpTypeSampledImage %141
258%_ptr_UniformConstant_142 = OpTypePointer UniformConstant %142
259  %is2DArray = OpVariable %_ptr_UniformConstant_142 UniformConstant
260        %150 = OpTypeImage %float Cube 1 0 0 1 Unknown
261        %151 = OpTypeSampledImage %150
262%_ptr_UniformConstant_151 = OpTypePointer UniformConstant %151
263%sCubeShadow = OpVariable %_ptr_UniformConstant_151 UniformConstant
264       %uint = OpTypeInt 32 0
265        %160 = OpTypeImage %uint 2D 0 0 0 1 Unknown
266        %161 = OpTypeSampledImage %160
267%_ptr_UniformConstant_161 = OpTypePointer UniformConstant %161
268       %us2D = OpVariable %_ptr_UniformConstant_161 UniformConstant
269        %164 = OpTypeImage %uint 3D 0 0 0 1 Unknown
270        %165 = OpTypeSampledImage %164
271%_ptr_UniformConstant_165 = OpTypePointer UniformConstant %165
272       %us3D = OpVariable %_ptr_UniformConstant_165 UniformConstant
273        %168 = OpTypeImage %uint Cube 0 0 0 1 Unknown
274        %169 = OpTypeSampledImage %168
275%_ptr_UniformConstant_169 = OpTypePointer UniformConstant %169
276     %usCube = OpVariable %_ptr_UniformConstant_169 UniformConstant
277        %172 = OpTypeImage %uint 2D 0 1 0 1 Unknown
278        %173 = OpTypeSampledImage %172
279%_ptr_UniformConstant_173 = OpTypePointer UniformConstant %173
280  %us2DArray = OpVariable %_ptr_UniformConstant_173 UniformConstant
281%_ptr_Input_v4int = OpTypePointer Input %v4int
282       %ic4D = OpVariable %_ptr_Input_v4int Input
283         %S2 = OpTypeStruct %v3float %float
284%_ptr_Input_S2 = OpTypePointer Input %S2
285         %s2 = OpVariable %_ptr_Input_S2 Input
286%_ptr_Output_v3float = OpTypePointer Output %v3float
287         %sc = OpVariable %_ptr_Output_v3float Output
288%_ptr_Output_float = OpTypePointer Output %float
289         %sf = OpVariable %_ptr_Output_float Output
290     %uint_5 = OpConstant %uint 5
291%_arr_11_uint_5 = OpTypeArray %11 %uint_5
292%_ptr_UniformConstant__arr_11_uint_5 = OpTypePointer UniformConstant %_arr_11_uint_5
293%arrayedSampler = OpVariable %_ptr_UniformConstant__arr_11_uint_5 UniformConstant
294       %main = OpFunction %void None %3
295          %5 = OpLabel
296          %v = OpVariable %_ptr_Function_v4float Function
297          %f = OpVariable %_ptr_Function_float Function
298         %iv = OpVariable %_ptr_Function_v4int Function
299         %14 = OpLoad %11 %s2D
300         %18 = OpLoad %v2float %c2D
301         %19 = OpImageSampleImplicitLod %v4float %14 %18
302               OpStore %v %19
303         %24 = OpLoad %21 %s3D
304         %27 = OpLoad %v4float %c4D
305         %28 = OpImageSampleProjImplicitLod %v4float %24 %27
306               OpStore %v %28
307         %33 = OpLoad %30 %s2DArray
308         %37 = OpLoad %v3float %c3D
309         %39 = OpImageSampleExplicitLod %v4float %33 %37 Lod %float_1_20000005
310               OpStore %v %39
311         %40 = OpLoad %21 %s3D
312         %45 = OpLoad %v3int %ic3D
313         %48 = OpLoad %int %ic1D
314         %49 = OpImage %20 %40
315         %50 = OpImageFetch %v4float %49 %45 Lod %48
316               OpStore %v %50
317         %57 = OpLoad %54 %s2DShadow
318         %58 = OpLoad %v3float %c3D
319         %61 = OpLoad %float %c1D
320         %66 = OpCompositeExtract %float %58 2
321         %67 = OpImageSampleDrefExplicitLod %float %57 %58 %66 Lod|ConstOffset %61 %65
322               OpStore %f %67
323         %68 = OpLoad %11 %s2D
324         %69 = OpLoad %v3float %c3D
325         %70 = OpLoad %float %c1D
326         %71 = OpImageSampleProjExplicitLod %v4float %68 %69 Lod|ConstOffset %70 %65
327               OpStore %v %71
328         %76 = OpLoad %73 %sCube
329         %77 = OpLoad %v3float %c3D
330         %78 = OpLoad %v3float %c3D
331         %79 = OpLoad %v3float %c3D
332         %80 = OpImageSampleExplicitLod %v4float %76 %77 Grad %78 %79
333               OpStore %v %80
334         %85 = OpLoad %82 %s2DArrayShadow
335         %86 = OpLoad %v4float %c4D
336         %87 = OpLoad %v2float %c2D
337         %88 = OpLoad %v2float %c2D
338         %89 = OpCompositeExtract %float %86 3
339         %90 = OpImageSampleDrefExplicitLod %float %85 %86 %89 Grad|ConstOffset %87 %88 %65
340               OpStore %f %90
341         %91 = OpLoad %21 %s3D
342         %92 = OpLoad %v4float %c4D
343         %93 = OpLoad %v3float %c3D
344         %94 = OpLoad %v3float %c3D
345         %95 = OpImageSampleProjExplicitLod %v4float %91 %92 Grad %93 %94
346               OpStore %v %95
347         %96 = OpLoad %11 %s2D
348         %97 = OpLoad %v3float %c3D
349         %98 = OpLoad %v2float %c2D
350         %99 = OpLoad %v2float %c2D
351        %100 = OpImageSampleProjExplicitLod %v4float %96 %97 Grad|ConstOffset %98 %99 %65
352               OpStore %v %100
353        %108 = OpLoad %105 %is2D
354        %109 = OpLoad %v2float %c2D
355        %110 = OpImageSampleImplicitLod %v4int %108 %109
356               OpStore %iv %110
357        %111 = OpLoad %105 %is2D
358        %112 = OpLoad %v4float %c4D
359        %113 = OpCompositeExtract %float %112 3
360        %114 = OpCompositeInsert %v4float %113 %112 2
361        %115 = OpImageSampleProjImplicitLod %v4int %111 %114 ConstOffset %65
362               OpStore %iv %115
363        %116 = OpLoad %105 %is2D
364        %117 = OpLoad %v3float %c3D
365        %118 = OpLoad %float %c1D
366        %119 = OpImageSampleProjExplicitLod %v4int %116 %117 Lod %118
367               OpStore %iv %119
368        %120 = OpLoad %105 %is2D
369        %121 = OpLoad %v3float %c3D
370        %122 = OpLoad %v2float %c2D
371        %123 = OpLoad %v2float %c2D
372        %124 = OpImageSampleProjExplicitLod %v4int %120 %121 Grad %122 %123
373               OpStore %iv %124
374        %129 = OpLoad %126 %is3D
375        %130 = OpLoad %v3float %c3D
376        %132 = OpImageSampleImplicitLod %v4int %129 %130 Bias %float_4_19999981
377               OpStore %iv %132
378        %137 = OpLoad %134 %isCube
379        %138 = OpLoad %v3float %c3D
380        %139 = OpLoad %float %c1D
381        %140 = OpImageSampleExplicitLod %v4int %137 %138 Lod %139
382               OpStore %iv %140
383        %145 = OpLoad %142 %is2DArray
384        %146 = OpLoad %v3int %ic3D
385        %147 = OpLoad %int %ic1D
386        %148 = OpImage %141 %145
387        %149 = OpImageFetch %v4int %148 %146 Lod %147
388               OpStore %iv %149
389        %154 = OpLoad %151 %sCubeShadow
390        %155 = OpImage %150 %154
391        %156 = OpImageQuerySizeLod %v2int %155 %int_2
392        %157 = OpLoad %v4int %iv
393        %158 = OpVectorShuffle %v4int %157 %156 4 5 2 3
394               OpStore %iv %158
395               OpReturn
396               OpFunctionEnd
397