• 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 "testInputs"
10OpMemberName %_UniformBuffer 1 "colorGreen"
11OpMemberName %_UniformBuffer 2 "colorRed"
12OpName %_entrypoint_v "_entrypoint_v"
13OpName %main "main"
14OpName %intValues "intValues"
15OpName %intGreen "intGreen"
16OpName %expectedA "expectedA"
17OpName %expectedB "expectedB"
18OpDecorate %sk_FragColor RelaxedPrecision
19OpDecorate %sk_FragColor Location 0
20OpDecorate %sk_FragColor Index 0
21OpDecorate %sk_Clockwise BuiltIn FrontFacing
22OpMemberDecorate %_UniformBuffer 0 Offset 0
23OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
24OpMemberDecorate %_UniformBuffer 1 Offset 16
25OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
26OpMemberDecorate %_UniformBuffer 2 Offset 32
27OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
28OpDecorate %_UniformBuffer Block
29OpDecorate %10 Binding 0
30OpDecorate %10 DescriptorSet 0
31OpDecorate %33 RelaxedPrecision
32OpDecorate %35 RelaxedPrecision
33OpDecorate %36 RelaxedPrecision
34OpDecorate %38 RelaxedPrecision
35OpDecorate %40 RelaxedPrecision
36OpDecorate %42 RelaxedPrecision
37OpDecorate %48 RelaxedPrecision
38OpDecorate %49 RelaxedPrecision
39OpDecorate %50 RelaxedPrecision
40OpDecorate %52 RelaxedPrecision
41OpDecorate %54 RelaxedPrecision
42OpDecorate %56 RelaxedPrecision
43OpDecorate %160 RelaxedPrecision
44OpDecorate %163 RelaxedPrecision
45OpDecorate %164 RelaxedPrecision
46%float = OpTypeFloat 32
47%v4float = OpTypeVector %float 4
48%_ptr_Output_v4float = OpTypePointer Output %v4float
49%sk_FragColor = OpVariable %_ptr_Output_v4float Output
50%bool = OpTypeBool
51%_ptr_Input_bool = OpTypePointer Input %bool
52%sk_Clockwise = OpVariable %_ptr_Input_bool Input
53%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float
54%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
55%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
56%void = OpTypeVoid
57%15 = OpTypeFunction %void
58%v2float = OpTypeVector %float 2
59%float_0 = OpConstant %float 0
60%19 = OpConstantComposite %v2float %float_0 %float_0
61%_ptr_Function_v2float = OpTypePointer Function %v2float
62%23 = OpTypeFunction %v4float %_ptr_Function_v2float
63%int = OpTypeInt 32 1
64%v4int = OpTypeVector %int 4
65%_ptr_Function_v4int = OpTypePointer Function %v4int
66%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
67%int_0 = OpConstant %int 0
68%float_100 = OpConstant %float 100
69%int_1 = OpConstant %int 1
70%int_50 = OpConstant %int 50
71%int_75 = OpConstant %int 75
72%int_225 = OpConstant %int 225
73%63 = OpConstantComposite %v4int %int_50 %int_50 %int_75 %int_225
74%int_100 = OpConstant %int 100
75%66 = OpConstantComposite %v4int %int_0 %int_100 %int_75 %int_225
76%false = OpConstantFalse %bool
77%v2int = OpTypeVector %int 2
78%v2bool = OpTypeVector %bool 2
79%v3int = OpTypeVector %int 3
80%v3bool = OpTypeVector %bool 3
81%v4bool = OpTypeVector %bool 4
82%_ptr_Function_v4float = OpTypePointer Function %v4float
83%int_2 = OpConstant %int 2
84%_entrypoint_v = OpFunction %void None %15
85%16 = OpLabel
86%20 = OpVariable %_ptr_Function_v2float Function
87OpStore %20 %19
88%22 = OpFunctionCall %v4float %main %20
89OpStore %sk_FragColor %22
90OpReturn
91OpFunctionEnd
92%main = OpFunction %v4float None %23
93%24 = OpFunctionParameter %_ptr_Function_v2float
94%25 = OpLabel
95%intValues = OpVariable %_ptr_Function_v4int Function
96%intGreen = OpVariable %_ptr_Function_v4int Function
97%expectedA = OpVariable %_ptr_Function_v4int Function
98%expectedB = OpVariable %_ptr_Function_v4int Function
99%154 = OpVariable %_ptr_Function_v4float Function
100%30 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
101%33 = OpLoad %v4float %30
102%35 = OpVectorTimesScalar %v4float %33 %float_100
103%36 = OpCompositeExtract %float %35 0
104%37 = OpConvertFToS %int %36
105%38 = OpCompositeExtract %float %35 1
106%39 = OpConvertFToS %int %38
107%40 = OpCompositeExtract %float %35 2
108%41 = OpConvertFToS %int %40
109%42 = OpCompositeExtract %float %35 3
110%43 = OpConvertFToS %int %42
111%44 = OpCompositeConstruct %v4int %37 %39 %41 %43
112OpStore %intValues %44
113%46 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
114%48 = OpLoad %v4float %46
115%49 = OpVectorTimesScalar %v4float %48 %float_100
116%50 = OpCompositeExtract %float %49 0
117%51 = OpConvertFToS %int %50
118%52 = OpCompositeExtract %float %49 1
119%53 = OpConvertFToS %int %52
120%54 = OpCompositeExtract %float %49 2
121%55 = OpConvertFToS %int %54
122%56 = OpCompositeExtract %float %49 3
123%57 = OpConvertFToS %int %56
124%58 = OpCompositeConstruct %v4int %51 %53 %55 %57
125OpStore %intGreen %58
126OpStore %expectedA %63
127OpStore %expectedB %66
128%69 = OpLoad %v4int %intValues
129%70 = OpCompositeExtract %int %69 0
130%68 = OpExtInst %int %1 SMax %70 %int_50
131%71 = OpLoad %v4int %expectedA
132%72 = OpCompositeExtract %int %71 0
133%73 = OpIEqual %bool %68 %72
134OpSelectionMerge %75 None
135OpBranchConditional %73 %74 %75
136%74 = OpLabel
137%77 = OpLoad %v4int %intValues
138%78 = OpVectorShuffle %v2int %77 %77 0 1
139%80 = OpCompositeConstruct %v2int %int_50 %int_50
140%76 = OpExtInst %v2int %1 SMax %78 %80
141%81 = OpLoad %v4int %expectedA
142%82 = OpVectorShuffle %v2int %81 %81 0 1
143%83 = OpIEqual %v2bool %76 %82
144%85 = OpAll %bool %83
145OpBranch %75
146%75 = OpLabel
147%86 = OpPhi %bool %false %25 %85 %74
148OpSelectionMerge %88 None
149OpBranchConditional %86 %87 %88
150%87 = OpLabel
151%90 = OpLoad %v4int %intValues
152%91 = OpVectorShuffle %v3int %90 %90 0 1 2
153%93 = OpCompositeConstruct %v3int %int_50 %int_50 %int_50
154%89 = OpExtInst %v3int %1 SMax %91 %93
155%94 = OpLoad %v4int %expectedA
156%95 = OpVectorShuffle %v3int %94 %94 0 1 2
157%96 = OpIEqual %v3bool %89 %95
158%98 = OpAll %bool %96
159OpBranch %88
160%88 = OpLabel
161%99 = OpPhi %bool %false %75 %98 %87
162OpSelectionMerge %101 None
163OpBranchConditional %99 %100 %101
164%100 = OpLabel
165%103 = OpLoad %v4int %intValues
166%104 = OpCompositeConstruct %v4int %int_50 %int_50 %int_50 %int_50
167%102 = OpExtInst %v4int %1 SMax %103 %104
168%105 = OpLoad %v4int %expectedA
169%106 = OpIEqual %v4bool %102 %105
170%108 = OpAll %bool %106
171OpBranch %101
172%101 = OpLabel
173%109 = OpPhi %bool %false %88 %108 %100
174OpSelectionMerge %111 None
175OpBranchConditional %109 %110 %111
176%110 = OpLabel
177%113 = OpLoad %v4int %intValues
178%114 = OpCompositeExtract %int %113 0
179%115 = OpLoad %v4int %intGreen
180%116 = OpCompositeExtract %int %115 0
181%112 = OpExtInst %int %1 SMax %114 %116
182%117 = OpLoad %v4int %expectedB
183%118 = OpCompositeExtract %int %117 0
184%119 = OpIEqual %bool %112 %118
185OpBranch %111
186%111 = OpLabel
187%120 = OpPhi %bool %false %101 %119 %110
188OpSelectionMerge %122 None
189OpBranchConditional %120 %121 %122
190%121 = OpLabel
191%124 = OpLoad %v4int %intValues
192%125 = OpVectorShuffle %v2int %124 %124 0 1
193%126 = OpLoad %v4int %intGreen
194%127 = OpVectorShuffle %v2int %126 %126 0 1
195%123 = OpExtInst %v2int %1 SMax %125 %127
196%128 = OpLoad %v4int %expectedB
197%129 = OpVectorShuffle %v2int %128 %128 0 1
198%130 = OpIEqual %v2bool %123 %129
199%131 = OpAll %bool %130
200OpBranch %122
201%122 = OpLabel
202%132 = OpPhi %bool %false %111 %131 %121
203OpSelectionMerge %134 None
204OpBranchConditional %132 %133 %134
205%133 = OpLabel
206%136 = OpLoad %v4int %intValues
207%137 = OpVectorShuffle %v3int %136 %136 0 1 2
208%138 = OpLoad %v4int %intGreen
209%139 = OpVectorShuffle %v3int %138 %138 0 1 2
210%135 = OpExtInst %v3int %1 SMax %137 %139
211%140 = OpLoad %v4int %expectedB
212%141 = OpVectorShuffle %v3int %140 %140 0 1 2
213%142 = OpIEqual %v3bool %135 %141
214%143 = OpAll %bool %142
215OpBranch %134
216%134 = OpLabel
217%144 = OpPhi %bool %false %122 %143 %133
218OpSelectionMerge %146 None
219OpBranchConditional %144 %145 %146
220%145 = OpLabel
221%148 = OpLoad %v4int %intValues
222%149 = OpLoad %v4int %intGreen
223%147 = OpExtInst %v4int %1 SMax %148 %149
224%150 = OpLoad %v4int %expectedB
225%151 = OpIEqual %v4bool %147 %150
226%152 = OpAll %bool %151
227OpBranch %146
228%146 = OpLabel
229%153 = OpPhi %bool %false %134 %152 %145
230OpSelectionMerge %158 None
231OpBranchConditional %153 %156 %157
232%156 = OpLabel
233%159 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
234%160 = OpLoad %v4float %159
235OpStore %154 %160
236OpBranch %158
237%157 = OpLabel
238%161 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
239%163 = OpLoad %v4float %161
240OpStore %154 %163
241OpBranch %158
242%158 = OpLabel
243%164 = OpLoad %v4float %154
244OpReturnValue %164
245OpFunctionEnd
246