1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 6
4; Bound: 48
5; Schema: 0
6               OpCapability Geometry
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint Geometry %main "main" %_ %VertexOutput %vin
10               OpExecutionMode %main Triangles
11               OpExecutionMode %main Invocations 1
12               OpExecutionMode %main OutputTriangleStrip
13               OpExecutionMode %main OutputVertices 4
14               OpSource GLSL 450
15               OpName %main "main"
16               OpName %VertexInput3 "VertexInput"
17               OpName %gl_PerVertex "gl_PerVertex"
18               OpMemberName %gl_PerVertex 0 "gl_Position"
19               OpMemberName %gl_PerVertex 1 "gl_PointSize"
20               OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
21               OpMemberName %gl_PerVertex 3 "gl_CullDistance"
22               OpName %_ ""
23               OpName %VertexInput "VertexInput"
24               OpMemberName %VertexInput 0 "a"
25               OpName %VertexInput4 "VertexInput"
26               OpName %VertexInput_0 "VertexInput"
27               OpMemberName %VertexInput_0 0 "b"
28               OpName %VertexInput2 "VertexInput"
29               OpName %VertexInput_1 "VertexInput"
30               OpMemberName %VertexInput_1 0 "vColor"
31               OpName %VertexOutput "VertexInput"
32               OpName %VertexInput_2 "VertexInput"
33               OpMemberName %VertexInput_2 0 "vColor"
34               OpName %vin "vin"
35               OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
36               OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
37               OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
38               OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
39               OpDecorate %gl_PerVertex Block
40               OpMemberDecorate %VertexInput 0 Offset 0
41               OpDecorate %VertexInput Block
42               OpDecorate %VertexInput4 DescriptorSet 0
43               OpDecorate %VertexInput4 Binding 0
44               OpMemberDecorate %VertexInput_0 0 Offset 0
45               OpDecorate %VertexInput_0 BufferBlock
46               OpDecorate %VertexInput2 DescriptorSet 0
47               OpDecorate %VertexInput2 Binding 0
48               OpDecorate %VertexInput_1 Block
49               OpDecorate %VertexOutput Location 0
50               OpDecorate %VertexInput_2 Block
51               OpDecorate %vin Location 0
52       %void = OpTypeVoid
53          %3 = OpTypeFunction %void
54      %float = OpTypeFloat 32
55    %v4float = OpTypeVector %float 4
56%_ptr_Function_v4float = OpTypePointer Function %v4float
57    %float_1 = OpConstant %float 1
58         %11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
59       %uint = OpTypeInt 32 0
60     %uint_1 = OpConstant %uint 1
61%_arr_float_uint_1 = OpTypeArray %float %uint_1
62%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
63%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
64          %_ = OpVariable %_ptr_Output_gl_PerVertex Output
65        %int = OpTypeInt 32 1
66      %int_0 = OpConstant %int 0
67%VertexInput = OpTypeStruct %v4float
68%_ptr_Uniform_VertexInput = OpTypePointer Uniform %VertexInput
69%VertexInput4 = OpVariable %_ptr_Uniform_VertexInput Uniform
70%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
71%VertexInput_0 = OpTypeStruct %v4float
72%_ptr_Uniform_VertexInput_0 = OpTypePointer Uniform %VertexInput_0
73%VertexInput2 = OpVariable %_ptr_Uniform_VertexInput_0 Uniform
74%_ptr_Output_v4float = OpTypePointer Output %v4float
75%VertexInput_1 = OpTypeStruct %v4float
76%_ptr_Output_VertexInput_1 = OpTypePointer Output %VertexInput_1
77%VertexOutput = OpVariable %_ptr_Output_VertexInput_1 Output
78%VertexInput_2 = OpTypeStruct %v4float
79     %uint_3 = OpConstant %uint 3
80%_arr_VertexInput_2_uint_3 = OpTypeArray %VertexInput_2 %uint_3
81%_ptr_Input__arr_VertexInput_2_uint_3 = OpTypePointer Input %_arr_VertexInput_2_uint_3
82        %vin = OpVariable %_ptr_Input__arr_VertexInput_2_uint_3 Input
83%_ptr_Input_v4float = OpTypePointer Input %v4float
84       %main = OpFunction %void None %3
85          %5 = OpLabel
86%VertexInput3 = OpVariable %_ptr_Function_v4float Function
87               OpStore %VertexInput3 %11
88         %20 = OpLoad %v4float %VertexInput3
89         %25 = OpAccessChain %_ptr_Uniform_v4float %VertexInput4 %int_0
90         %26 = OpLoad %v4float %25
91         %27 = OpFAdd %v4float %20 %26
92         %31 = OpAccessChain %_ptr_Uniform_v4float %VertexInput2 %int_0
93         %32 = OpLoad %v4float %31
94         %33 = OpFAdd %v4float %27 %32
95         %35 = OpAccessChain %_ptr_Output_v4float %_ %int_0
96               OpStore %35 %33
97         %45 = OpAccessChain %_ptr_Input_v4float %vin %int_0 %int_0
98         %46 = OpLoad %v4float %45
99         %47 = OpAccessChain %_ptr_Output_v4float %VertexOutput %int_0
100               OpStore %47 %46
101               OpEmitVertex
102               OpReturn
103               OpFunctionEnd
104