1OpCapability Geometry
2%1 = OpExtInstImport "GLSL.std.450"
3OpMemoryModel Logical GLSL450
4OpEntryPoint Geometry %main "main" %3 %8 %sk_InvocationID
5OpExecutionMode %main InputPoints
6OpExecutionMode %main OutputLineStrip
7OpExecutionMode %main OutputVertices 2
8OpExecutionMode %main Invocations 2
9OpName %sk_PerVertex "sk_PerVertex"
10OpMemberName %sk_PerVertex 0 "sk_Position"
11OpMemberName %sk_PerVertex 1 "sk_PointSize"
12OpName %sk_InvocationID "sk_InvocationID"
13OpName %_UniformBuffer "_UniformBuffer"
14OpMemberName %_UniformBuffer 0 "sk_RTAdjust"
15OpName %main "main"
16OpMemberDecorate %sk_PerVertex 0 BuiltIn Position
17OpMemberDecorate %sk_PerVertex 1 BuiltIn PointSize
18OpDecorate %_arr_sk_PerVertex_int_1 ArrayStride 32
19OpDecorate %sk_InvocationID BuiltIn InvocationId
20OpMemberDecorate %_UniformBuffer 0 Offset 0
21OpDecorate %_UniformBuffer Block
22OpDecorate %15 Binding 0
23OpDecorate %15 DescriptorSet 0
24%float = OpTypeFloat 32
25%v4float = OpTypeVector %float 4
26%sk_PerVertex = OpTypeStruct %v4float %float
27%_ptr_Output_sk_PerVertex = OpTypePointer Output %sk_PerVertex
28%3 = OpVariable %_ptr_Output_sk_PerVertex Output
29%int = OpTypeInt 32 1
30%int_1 = OpConstant %int 1
31%_arr_sk_PerVertex_int_1 = OpTypeArray %sk_PerVertex %int_1
32%_ptr_Input__arr_sk_PerVertex_int_1 = OpTypePointer Input %_arr_sk_PerVertex_int_1
33%8 = OpVariable %_ptr_Input__arr_sk_PerVertex_int_1 Input
34%_ptr_Input_int = OpTypePointer Input %int
35%sk_InvocationID = OpVariable %_ptr_Input_int Input
36%_UniformBuffer = OpTypeStruct %v4float
37%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
38%15 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
39%void = OpTypeVoid
40%19 = OpTypeFunction %void
41%int_0 = OpConstant %int 0
42%_ptr_Input_v4float = OpTypePointer Input %v4float
43%float_n0_5 = OpConstant %float -0.5
44%float_0 = OpConstant %float 0
45%_ptr_Output_v4float = OpTypePointer Output %v4float
46%v2float = OpTypeVector %float 2
47%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
48%float_0_5 = OpConstant %float 0.5
49%main = OpFunction %void None %19
50%20 = OpLabel
51%22 = OpAccessChain %_ptr_Input_v4float %8 %int_0 %int_0
52%24 = OpLoad %v4float %22
53%27 = OpLoad %int %sk_InvocationID
54%28 = OpConvertSToF %float %27
55%29 = OpCompositeConstruct %v4float %float_n0_5 %float_0 %float_0 %28
56%30 = OpFAdd %v4float %24 %29
57%31 = OpAccessChain %_ptr_Output_v4float %3 %int_0
58OpStore %31 %30
59%33 = OpAccessChain %_ptr_Output_v4float %3 %int_0
60%34 = OpLoad %v4float %33
61%35 = OpVectorShuffle %v2float %34 %34 0 1
62%37 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
63%39 = OpLoad %v4float %37
64%40 = OpVectorShuffle %v2float %39 %39 0 2
65%41 = OpFMul %v2float %35 %40
66%42 = OpAccessChain %_ptr_Output_v4float %3 %int_0
67%43 = OpLoad %v4float %42
68%44 = OpVectorShuffle %v2float %43 %43 3 3
69%45 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
70%46 = OpLoad %v4float %45
71%47 = OpVectorShuffle %v2float %46 %46 1 3
72%48 = OpFMul %v2float %44 %47
73%49 = OpFAdd %v2float %41 %48
74%50 = OpCompositeExtract %float %49 0
75%51 = OpCompositeExtract %float %49 1
76%52 = OpAccessChain %_ptr_Output_v4float %3 %int_0
77%53 = OpLoad %v4float %52
78%54 = OpCompositeExtract %float %53 3
79%55 = OpCompositeConstruct %v4float %50 %51 %float_0 %54
80%56 = OpAccessChain %_ptr_Output_v4float %3 %int_0
81OpStore %56 %55
82OpEmitVertex
83%58 = OpAccessChain %_ptr_Input_v4float %8 %int_0 %int_0
84%59 = OpLoad %v4float %58
85%61 = OpLoad %int %sk_InvocationID
86%62 = OpConvertSToF %float %61
87%63 = OpCompositeConstruct %v4float %float_0_5 %float_0 %float_0 %62
88%64 = OpFAdd %v4float %59 %63
89%65 = OpAccessChain %_ptr_Output_v4float %3 %int_0
90OpStore %65 %64
91%66 = OpAccessChain %_ptr_Output_v4float %3 %int_0
92%67 = OpLoad %v4float %66
93%68 = OpVectorShuffle %v2float %67 %67 0 1
94%69 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
95%70 = OpLoad %v4float %69
96%71 = OpVectorShuffle %v2float %70 %70 0 2
97%72 = OpFMul %v2float %68 %71
98%73 = OpAccessChain %_ptr_Output_v4float %3 %int_0
99%74 = OpLoad %v4float %73
100%75 = OpVectorShuffle %v2float %74 %74 3 3
101%76 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
102%77 = OpLoad %v4float %76
103%78 = OpVectorShuffle %v2float %77 %77 1 3
104%79 = OpFMul %v2float %75 %78
105%80 = OpFAdd %v2float %72 %79
106%81 = OpCompositeExtract %float %80 0
107%82 = OpCompositeExtract %float %80 1
108%83 = OpAccessChain %_ptr_Output_v4float %3 %int_0
109%84 = OpLoad %v4float %83
110%85 = OpCompositeExtract %float %84 3
111%86 = OpCompositeConstruct %v4float %81 %82 %float_0 %85
112%87 = OpAccessChain %_ptr_Output_v4float %3 %int_0
113OpStore %87 %86
114OpEmitVertex
115OpEndPrimitive
116OpReturn
117OpFunctionEnd
118