; SPIR-V ; Version: 1.0 ; Generator: Khronos Glslang Reference Front End; 8 ; Bound: 437 ; Schema: 0 OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" OpExecutionMode %main LocalSize 1 1 1 OpSource GLSL 450 OpName %main "main" OpName %Baz "Baz" OpMemberName %Baz 0 "c" OpName %Bar "Bar" OpMemberName %Bar 0 "d" OpMemberName %Bar 1 "baz" OpName %Foo "Foo" OpMemberName %Foo 0 "a" OpMemberName %Foo 1 "b" OpMemberName %Foo 2 "c" OpName %Baz_0 "Baz" OpMemberName %Baz_0 0 "c" OpName %Bar_0 "Bar" OpMemberName %Bar_0 0 "d" OpMemberName %Bar_0 1 "baz" OpName %Foo_0 "Foo" OpMemberName %Foo_0 0 "a" OpMemberName %Foo_0 1 "b" OpMemberName %Foo_0 2 "c" OpName %SSBO "SSBO" OpMemberName %SSBO 0 "foo" OpMemberName %SSBO 1 "foo2" OpName %_ "" OpDecorate %_arr_float_uint_4_0 ArrayStride 4 OpDecorate %_arr__arr_float_uint_4_0_uint_2 ArrayStride 16 OpMemberDecorate %Baz_0 0 Offset 0 OpDecorate %_arr_Baz_0_uint_2 ArrayStride 4 OpMemberDecorate %Bar_0 0 Offset 0 OpMemberDecorate %Bar_0 1 Offset 32 OpDecorate %_arr_Bar_0_uint_5 ArrayStride 40 OpMemberDecorate %Foo_0 0 RowMajor OpMemberDecorate %Foo_0 0 Offset 0 OpMemberDecorate %Foo_0 0 MatrixStride 8 OpMemberDecorate %Foo_0 1 Offset 16 OpMemberDecorate %Foo_0 2 Offset 24 OpMemberDecorate %SSBO 0 Offset 0 OpMemberDecorate %SSBO 1 Offset 224 OpDecorate %SSBO BufferBlock OpDecorate %_ DescriptorSet 0 OpDecorate %_ Binding 0 OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize %void = OpTypeVoid %3 = OpTypeFunction %void %float = OpTypeFloat 32 %v2float = OpTypeVector %float 2 %mat2v2float = OpTypeMatrix %v2float 2 %uint = OpTypeInt 32 0 %uint_4 = OpConstant %uint 4 %_arr_float_uint_4 = OpTypeArray %float %uint_4 %uint_2 = OpConstant %uint 2 %_arr__arr_float_uint_4_uint_2 = OpTypeArray %_arr_float_uint_4 %uint_2 %Baz = OpTypeStruct %float %_arr_Baz_uint_2 = OpTypeArray %Baz %uint_2 %Bar = OpTypeStruct %_arr__arr_float_uint_4_uint_2 %_arr_Baz_uint_2 %uint_5 = OpConstant %uint 5 %_arr_Bar_uint_5 = OpTypeArray %Bar %uint_5 %Foo = OpTypeStruct %mat2v2float %v2float %_arr_Bar_uint_5 %_ptr_Function_Foo = OpTypePointer Function %Foo %_arr_float_uint_4_0 = OpTypeArray %float %uint_4 %_arr__arr_float_uint_4_0_uint_2 = OpTypeArray %_arr_float_uint_4_0 %uint_2 %Baz_0 = OpTypeStruct %float %_arr_Baz_0_uint_2 = OpTypeArray %Baz_0 %uint_2 %Bar_0 = OpTypeStruct %_arr__arr_float_uint_4_0_uint_2 %_arr_Baz_0_uint_2 %_arr_Bar_0_uint_5 = OpTypeArray %Bar_0 %uint_5 %Foo_0 = OpTypeStruct %mat2v2float %v2float %_arr_Bar_0_uint_5 %SSBO = OpTypeStruct %Foo_0 %Foo_0 %_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO %_ = OpVariable %_ptr_Uniform_SSBO Uniform %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float %int_1 = OpConstant %int 1 %_ptr_Function_v2float = OpTypePointer Function %v2float %int_2 = OpConstant %int 2 %_ptr_Function__arr_Bar_uint_5 = OpTypePointer Function %_arr_Bar_uint_5 %_ptr_Function_Bar = OpTypePointer Function %Bar %_ptr_Function__arr__arr_float_uint_4_uint_2 = OpTypePointer Function %_arr__arr_float_uint_4_uint_2 %_ptr_Function__arr_float_uint_4 = OpTypePointer Function %_arr_float_uint_4 %_ptr_Function_float = OpTypePointer Function %float %int_3 = OpConstant %int 3 %_ptr_Function__arr_Baz_uint_2 = OpTypePointer Function %_arr_Baz_uint_2 %_ptr_Function_Baz = OpTypePointer Function %Baz %int_4 = OpConstant %int 4 %float_1 = OpConstant %float 1 %float_2 = OpConstant %float 2 %float_5 = OpConstant %float 5 %_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %_ptr_Uniform__arr_Bar_0_uint_5 = OpTypePointer Uniform %_arr_Bar_0_uint_5 %_ptr_Uniform_Bar_0 = OpTypePointer Uniform %Bar_0 %_ptr_Uniform__arr__arr_float_uint_4_0_uint_2 = OpTypePointer Uniform %_arr__arr_float_uint_4_0_uint_2 %_ptr_Uniform__arr_float_uint_4_0 = OpTypePointer Uniform %_arr_float_uint_4_0 %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Uniform__arr_Baz_0_uint_2 = OpTypePointer Uniform %_arr_Baz_0_uint_2 %_ptr_Uniform_Baz_0 = OpTypePointer Uniform %Baz_0 %v3uint = OpTypeVector %uint 3 %uint_1 = OpConstant %uint 1 %gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 %main = OpFunction %void None %3 %5 = OpLabel %ptr_load = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_0 %ptr_store = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_1 %loaded = OpLoad %Foo_0 %ptr_load OpStore %ptr_store %loaded OpReturn OpFunctionEnd