• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1OpCapability Shader
2%1 = OpExtInstImport "GLSL.std.450"
3OpMemoryModel Logical GLSL450
4OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5OpExecutionMode %_entrypoint_v OriginUpperLeft
6OpName %sk_FragColor "sk_FragColor"
7OpName %sk_Clockwise "sk_Clockwise"
8OpName %_UniformBuffer "_UniformBuffer"
9OpMemberName %_UniformBuffer 0 "colorWhite"
10OpMemberName %_UniformBuffer 1 "colorGreen"
11OpMemberName %_UniformBuffer 2 "colorRed"
12OpMemberName %_UniformBuffer 3 "testMatrix2x2"
13OpMemberName %_UniformBuffer 4 "testMatrix3x3"
14OpMemberName %_UniformBuffer 5 "testMatrix4x4"
15OpName %_entrypoint_v "_entrypoint_v"
16OpName %test_iscalar_b "test_iscalar_b"
17OpName %x "x"
18OpName %test_fvec_b "test_fvec_b"
19OpName %x_0 "x"
20OpName %test_ivec_b "test_ivec_b"
21OpName %x_1 "x"
22OpName %test_mat2_b "test_mat2_b"
23OpName %negated "negated"
24OpName %x_2 "x"
25OpName %test_mat3_b "test_mat3_b"
26OpName %negated_0 "negated"
27OpName %x_3 "x"
28OpName %test_mat4_b "test_mat4_b"
29OpName %negated_1 "negated"
30OpName %x_4 "x"
31OpName %main "main"
32OpName %_0_x "_0_x"
33OpDecorate %sk_FragColor RelaxedPrecision
34OpDecorate %sk_FragColor Location 0
35OpDecorate %sk_FragColor Index 0
36OpDecorate %sk_Clockwise BuiltIn FrontFacing
37OpMemberDecorate %_UniformBuffer 0 Offset 0
38OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
39OpMemberDecorate %_UniformBuffer 1 Offset 16
40OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
41OpMemberDecorate %_UniformBuffer 2 Offset 32
42OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
43OpMemberDecorate %_UniformBuffer 3 Offset 48
44OpMemberDecorate %_UniformBuffer 3 ColMajor
45OpMemberDecorate %_UniformBuffer 3 MatrixStride 16
46OpMemberDecorate %_UniformBuffer 4 Offset 80
47OpMemberDecorate %_UniformBuffer 4 ColMajor
48OpMemberDecorate %_UniformBuffer 4 MatrixStride 16
49OpMemberDecorate %_UniformBuffer 5 Offset 128
50OpMemberDecorate %_UniformBuffer 5 ColMajor
51OpMemberDecorate %_UniformBuffer 5 MatrixStride 16
52OpDecorate %_UniformBuffer Block
53OpDecorate %16 Binding 0
54OpDecorate %16 DescriptorSet 0
55OpDecorate %41 RelaxedPrecision
56OpDecorate %42 RelaxedPrecision
57OpDecorate %x_0 RelaxedPrecision
58OpDecorate %52 RelaxedPrecision
59OpDecorate %53 RelaxedPrecision
60OpDecorate %54 RelaxedPrecision
61OpDecorate %55 RelaxedPrecision
62OpDecorate %56 RelaxedPrecision
63OpDecorate %58 RelaxedPrecision
64OpDecorate %67 RelaxedPrecision
65OpDecorate %68 RelaxedPrecision
66OpDecorate %208 RelaxedPrecision
67OpDecorate %209 RelaxedPrecision
68OpDecorate %246 RelaxedPrecision
69OpDecorate %249 RelaxedPrecision
70OpDecorate %250 RelaxedPrecision
71%float = OpTypeFloat 32
72%v4float = OpTypeVector %float 4
73%_ptr_Output_v4float = OpTypePointer Output %v4float
74%sk_FragColor = OpVariable %_ptr_Output_v4float Output
75%bool = OpTypeBool
76%_ptr_Input_bool = OpTypePointer Input %bool
77%sk_Clockwise = OpVariable %_ptr_Input_bool Input
78%v2float = OpTypeVector %float 2
79%mat2v2float = OpTypeMatrix %v2float 2
80%v3float = OpTypeVector %float 3
81%mat3v3float = OpTypeMatrix %v3float 3
82%mat4v4float = OpTypeMatrix %v4float 4
83%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %mat2v2float %mat3v3float %mat4v4float
84%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
85%16 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
86%void = OpTypeVoid
87%26 = OpTypeFunction %void
88%float_0 = OpConstant %float 0
89%29 = OpConstantComposite %v2float %float_0 %float_0
90%_ptr_Function_v2float = OpTypePointer Function %v2float
91%33 = OpTypeFunction %bool
92%int = OpTypeInt 32 1
93%_ptr_Function_int = OpTypePointer Function %int
94%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
95%int_0 = OpConstant %int 0
96%int_n1 = OpConstant %int -1
97%float_n1 = OpConstant %float -1
98%58 = OpConstantComposite %v2float %float_n1 %float_n1
99%v2bool = OpTypeVector %bool 2
100%v2int = OpTypeVector %int 2
101%_ptr_Function_v2int = OpTypePointer Function %v2int
102%74 = OpConstantComposite %v2int %int_n1 %int_n1
103%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
104%float_n2 = OpConstant %float -2
105%float_n3 = OpConstant %float -3
106%float_n4 = OpConstant %float -4
107%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
108%int_3 = OpConstant %int 3
109%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
110%float_n5 = OpConstant %float -5
111%float_n6 = OpConstant %float -6
112%float_n7 = OpConstant %float -7
113%float_n8 = OpConstant %float -8
114%float_n9 = OpConstant %float -9
115%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float
116%int_4 = OpConstant %int 4
117%v3bool = OpTypeVector %bool 3
118%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
119%float_n10 = OpConstant %float -10
120%float_n11 = OpConstant %float -11
121%float_n12 = OpConstant %float -12
122%float_n13 = OpConstant %float -13
123%float_n14 = OpConstant %float -14
124%float_n15 = OpConstant %float -15
125%float_n16 = OpConstant %float -16
126%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
127%int_5 = OpConstant %int 5
128%v4bool = OpTypeVector %bool 4
129%202 = OpTypeFunction %v4float %_ptr_Function_v2float
130%_ptr_Function_float = OpTypePointer Function %float
131%false = OpConstantFalse %bool
132%_ptr_Function_v4float = OpTypePointer Function %v4float
133%int_1 = OpConstant %int 1
134%int_2 = OpConstant %int 2
135%_entrypoint_v = OpFunction %void None %26
136%27 = OpLabel
137%30 = OpVariable %_ptr_Function_v2float Function
138OpStore %30 %29
139%32 = OpFunctionCall %v4float %main %30
140OpStore %sk_FragColor %32
141OpReturn
142OpFunctionEnd
143%test_iscalar_b = OpFunction %bool None %33
144%34 = OpLabel
145%x = OpVariable %_ptr_Function_int Function
146%38 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
147%41 = OpLoad %v4float %38
148%42 = OpCompositeExtract %float %41 0
149%43 = OpConvertFToS %int %42
150OpStore %x %43
151%44 = OpLoad %int %x
152%45 = OpSNegate %int %44
153OpStore %x %45
154%46 = OpLoad %int %x
155%48 = OpIEqual %bool %46 %int_n1
156OpReturnValue %48
157OpFunctionEnd
158%test_fvec_b = OpFunction %bool None %33
159%49 = OpLabel
160%x_0 = OpVariable %_ptr_Function_v2float Function
161%51 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
162%52 = OpLoad %v4float %51
163%53 = OpVectorShuffle %v2float %52 %52 0 1
164OpStore %x_0 %53
165%54 = OpLoad %v2float %x_0
166%55 = OpFNegate %v2float %54
167OpStore %x_0 %55
168%56 = OpLoad %v2float %x_0
169%59 = OpFOrdEqual %v2bool %56 %58
170%61 = OpAll %bool %59
171OpReturnValue %61
172OpFunctionEnd
173%test_ivec_b = OpFunction %bool None %33
174%62 = OpLabel
175%x_1 = OpVariable %_ptr_Function_v2int Function
176%66 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
177%67 = OpLoad %v4float %66
178%68 = OpCompositeExtract %float %67 0
179%69 = OpConvertFToS %int %68
180%70 = OpCompositeConstruct %v2int %69 %69
181OpStore %x_1 %70
182%71 = OpLoad %v2int %x_1
183%72 = OpSNegate %v2int %71
184OpStore %x_1 %72
185%73 = OpLoad %v2int %x_1
186%75 = OpIEqual %v2bool %73 %74
187%76 = OpAll %bool %75
188OpReturnValue %76
189OpFunctionEnd
190%test_mat2_b = OpFunction %bool None %33
191%77 = OpLabel
192%negated = OpVariable %_ptr_Function_mat2v2float Function
193%x_2 = OpVariable %_ptr_Function_mat2v2float Function
194%83 = OpCompositeConstruct %v2float %float_n1 %float_n2
195%84 = OpCompositeConstruct %v2float %float_n3 %float_n4
196%85 = OpCompositeConstruct %mat2v2float %83 %84
197OpStore %negated %85
198%87 = OpAccessChain %_ptr_Uniform_mat2v2float %16 %int_3
199%90 = OpLoad %mat2v2float %87
200OpStore %x_2 %90
201%91 = OpLoad %mat2v2float %x_2
202%92 = OpCompositeExtract %v2float %91 0
203%93 = OpFNegate %v2float %92
204%94 = OpCompositeExtract %v2float %91 1
205%95 = OpFNegate %v2float %94
206%96 = OpCompositeConstruct %mat2v2float %93 %95
207OpStore %x_2 %96
208%97 = OpLoad %mat2v2float %x_2
209%98 = OpLoad %mat2v2float %negated
210%99 = OpCompositeExtract %v2float %97 0
211%100 = OpCompositeExtract %v2float %98 0
212%101 = OpFOrdEqual %v2bool %99 %100
213%102 = OpAll %bool %101
214%103 = OpCompositeExtract %v2float %97 1
215%104 = OpCompositeExtract %v2float %98 1
216%105 = OpFOrdEqual %v2bool %103 %104
217%106 = OpAll %bool %105
218%107 = OpLogicalAnd %bool %102 %106
219OpReturnValue %107
220OpFunctionEnd
221%test_mat3_b = OpFunction %bool None %33
222%108 = OpLabel
223%negated_0 = OpVariable %_ptr_Function_mat3v3float Function
224%x_3 = OpVariable %_ptr_Function_mat3v3float Function
225%116 = OpCompositeConstruct %v3float %float_n1 %float_n2 %float_n3
226%117 = OpCompositeConstruct %v3float %float_n4 %float_n5 %float_n6
227%118 = OpCompositeConstruct %v3float %float_n7 %float_n8 %float_n9
228%119 = OpCompositeConstruct %mat3v3float %116 %117 %118
229OpStore %negated_0 %119
230%121 = OpAccessChain %_ptr_Uniform_mat3v3float %16 %int_4
231%124 = OpLoad %mat3v3float %121
232OpStore %x_3 %124
233%125 = OpLoad %mat3v3float %x_3
234%126 = OpCompositeExtract %v3float %125 0
235%127 = OpFNegate %v3float %126
236%128 = OpCompositeExtract %v3float %125 1
237%129 = OpFNegate %v3float %128
238%130 = OpCompositeExtract %v3float %125 2
239%131 = OpFNegate %v3float %130
240%132 = OpCompositeConstruct %mat3v3float %127 %129 %131
241OpStore %x_3 %132
242%133 = OpLoad %mat3v3float %x_3
243%134 = OpLoad %mat3v3float %negated_0
244%136 = OpCompositeExtract %v3float %133 0
245%137 = OpCompositeExtract %v3float %134 0
246%138 = OpFOrdEqual %v3bool %136 %137
247%139 = OpAll %bool %138
248%140 = OpCompositeExtract %v3float %133 1
249%141 = OpCompositeExtract %v3float %134 1
250%142 = OpFOrdEqual %v3bool %140 %141
251%143 = OpAll %bool %142
252%144 = OpLogicalAnd %bool %139 %143
253%145 = OpCompositeExtract %v3float %133 2
254%146 = OpCompositeExtract %v3float %134 2
255%147 = OpFOrdEqual %v3bool %145 %146
256%148 = OpAll %bool %147
257%149 = OpLogicalAnd %bool %144 %148
258OpReturnValue %149
259OpFunctionEnd
260%test_mat4_b = OpFunction %bool None %33
261%150 = OpLabel
262%negated_1 = OpVariable %_ptr_Function_mat4v4float Function
263%x_4 = OpVariable %_ptr_Function_mat4v4float Function
264%160 = OpCompositeConstruct %v4float %float_n1 %float_n2 %float_n3 %float_n4
265%161 = OpCompositeConstruct %v4float %float_n5 %float_n6 %float_n7 %float_n8
266%162 = OpCompositeConstruct %v4float %float_n9 %float_n10 %float_n11 %float_n12
267%163 = OpCompositeConstruct %v4float %float_n13 %float_n14 %float_n15 %float_n16
268%164 = OpCompositeConstruct %mat4v4float %160 %161 %162 %163
269OpStore %negated_1 %164
270%166 = OpAccessChain %_ptr_Uniform_mat4v4float %16 %int_5
271%169 = OpLoad %mat4v4float %166
272OpStore %x_4 %169
273%170 = OpLoad %mat4v4float %x_4
274%171 = OpCompositeExtract %v4float %170 0
275%172 = OpFNegate %v4float %171
276%173 = OpCompositeExtract %v4float %170 1
277%174 = OpFNegate %v4float %173
278%175 = OpCompositeExtract %v4float %170 2
279%176 = OpFNegate %v4float %175
280%177 = OpCompositeExtract %v4float %170 3
281%178 = OpFNegate %v4float %177
282%179 = OpCompositeConstruct %mat4v4float %172 %174 %176 %178
283OpStore %x_4 %179
284%180 = OpLoad %mat4v4float %x_4
285%181 = OpLoad %mat4v4float %negated_1
286%183 = OpCompositeExtract %v4float %180 0
287%184 = OpCompositeExtract %v4float %181 0
288%185 = OpFOrdEqual %v4bool %183 %184
289%186 = OpAll %bool %185
290%187 = OpCompositeExtract %v4float %180 1
291%188 = OpCompositeExtract %v4float %181 1
292%189 = OpFOrdEqual %v4bool %187 %188
293%190 = OpAll %bool %189
294%191 = OpLogicalAnd %bool %186 %190
295%192 = OpCompositeExtract %v4float %180 2
296%193 = OpCompositeExtract %v4float %181 2
297%194 = OpFOrdEqual %v4bool %192 %193
298%195 = OpAll %bool %194
299%196 = OpLogicalAnd %bool %191 %195
300%197 = OpCompositeExtract %v4float %180 3
301%198 = OpCompositeExtract %v4float %181 3
302%199 = OpFOrdEqual %v4bool %197 %198
303%200 = OpAll %bool %199
304%201 = OpLogicalAnd %bool %196 %200
305OpReturnValue %201
306OpFunctionEnd
307%main = OpFunction %v4float None %202
308%203 = OpFunctionParameter %_ptr_Function_v2float
309%204 = OpLabel
310%_0_x = OpVariable %_ptr_Function_float Function
311%239 = OpVariable %_ptr_Function_v4float Function
312%207 = OpAccessChain %_ptr_Uniform_v4float %16 %int_0
313%208 = OpLoad %v4float %207
314%209 = OpCompositeExtract %float %208 0
315OpStore %_0_x %209
316%210 = OpLoad %float %_0_x
317%211 = OpFNegate %float %210
318OpStore %_0_x %211
319%213 = OpLoad %float %_0_x
320%214 = OpFOrdEqual %bool %213 %float_n1
321OpSelectionMerge %216 None
322OpBranchConditional %214 %215 %216
323%215 = OpLabel
324%217 = OpFunctionCall %bool %test_iscalar_b
325OpBranch %216
326%216 = OpLabel
327%218 = OpPhi %bool %false %204 %217 %215
328OpSelectionMerge %220 None
329OpBranchConditional %218 %219 %220
330%219 = OpLabel
331%221 = OpFunctionCall %bool %test_fvec_b
332OpBranch %220
333%220 = OpLabel
334%222 = OpPhi %bool %false %216 %221 %219
335OpSelectionMerge %224 None
336OpBranchConditional %222 %223 %224
337%223 = OpLabel
338%225 = OpFunctionCall %bool %test_ivec_b
339OpBranch %224
340%224 = OpLabel
341%226 = OpPhi %bool %false %220 %225 %223
342OpSelectionMerge %228 None
343OpBranchConditional %226 %227 %228
344%227 = OpLabel
345%229 = OpFunctionCall %bool %test_mat2_b
346OpBranch %228
347%228 = OpLabel
348%230 = OpPhi %bool %false %224 %229 %227
349OpSelectionMerge %232 None
350OpBranchConditional %230 %231 %232
351%231 = OpLabel
352%233 = OpFunctionCall %bool %test_mat3_b
353OpBranch %232
354%232 = OpLabel
355%234 = OpPhi %bool %false %228 %233 %231
356OpSelectionMerge %236 None
357OpBranchConditional %234 %235 %236
358%235 = OpLabel
359%237 = OpFunctionCall %bool %test_mat4_b
360OpBranch %236
361%236 = OpLabel
362%238 = OpPhi %bool %false %232 %237 %235
363OpSelectionMerge %243 None
364OpBranchConditional %238 %241 %242
365%241 = OpLabel
366%244 = OpAccessChain %_ptr_Uniform_v4float %16 %int_1
367%246 = OpLoad %v4float %244
368OpStore %239 %246
369OpBranch %243
370%242 = OpLabel
371%247 = OpAccessChain %_ptr_Uniform_v4float %16 %int_2
372%249 = OpLoad %v4float %247
373OpStore %239 %249
374OpBranch %243
375%243 = OpLabel
376%250 = OpLoad %v4float %239
377OpReturnValue %250
378OpFunctionEnd
379