OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %3 %sk_VertexID
OpName %sk_PerVertex "sk_PerVertex"
OpMemberName %sk_PerVertex 0 "sk_Position"
OpMemberName %sk_PerVertex 1 "sk_PointSize"
OpName %storageBuffer "storageBuffer"
OpMemberName %storageBuffer 0 "vertices"
OpName %sk_VertexID "sk_VertexID"
OpName %main "main"
OpMemberDecorate %sk_PerVertex 0 BuiltIn Position
OpMemberDecorate %sk_PerVertex 1 BuiltIn PointSize
OpDecorate %sk_PerVertex Block
OpDecorate %_runtimearr_v2float ArrayStride 16
OpMemberDecorate %storageBuffer 0 Offset 0
OpDecorate %storageBuffer BufferBlock
OpDecorate %8 Binding 0
OpDecorate %8 DescriptorSet 0
OpDecorate %sk_VertexID BuiltIn VertexIndex
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%sk_PerVertex = OpTypeStruct %v4float %float
%_ptr_Output_sk_PerVertex = OpTypePointer Output %sk_PerVertex
%3 = OpVariable %_ptr_Output_sk_PerVertex Output
%v2float = OpTypeVector %float 2
%_runtimearr_v2float = OpTypeRuntimeArray %v2float
%storageBuffer = OpTypeStruct %_runtimearr_v2float
%_ptr_Uniform_storageBuffer = OpTypePointer Uniform %storageBuffer
%8 = OpVariable %_ptr_Uniform_storageBuffer Uniform
%int = OpTypeInt 32 1
%_ptr_Input_int = OpTypePointer Input %int
%sk_VertexID = OpVariable %_ptr_Input_int Input
%void = OpTypeVoid
%17 = OpTypeFunction %void
%int_0 = OpConstant %int 0
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
%float_1 = OpConstant %float 1
%_ptr_Output_v4float = OpTypePointer Output %v4float
%main = OpFunction %void None %17
%18 = OpLabel
%20 = OpLoad %int %sk_VertexID
%21 = OpAccessChain %_ptr_Uniform_v2float %8 %int_0 %20
%23 = OpLoad %v2float %21
%24 = OpCompositeExtract %float %23 0
%25 = OpCompositeExtract %float %23 1
%27 = OpCompositeConstruct %v4float %24 %25 %float_1 %float_1
%28 = OpAccessChain %_ptr_Output_v4float %3 %int_0
OpStore %28 %27
OpReturn
OpFunctionEnd
