1; SPIR-V 2; Version: 1.0 3; Generator: Khronos Glslang Reference Front End; 7 4; Bound: 59 5; Schema: 0 6 OpCapability Shader 7 %1 = OpExtInstImport "GLSL.std.450" 8 OpMemoryModel Logical GLSL450 9 OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID 10 OpExecutionMode %main LocalSize 1 1 1 11 OpSource GLSL 450 12 OpName %main "main" 13 OpName %Foo "A" 14 OpMemberName %Foo 0 "a" 15 OpMemberName %Foo 1 "b" 16 OpName %A "A" 17 OpMemberName %A 0 "Data" 18 OpName %C1 "C1" 19 OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" 20 OpName %Foo_0 "A" 21 OpMemberName %Foo_0 0 "a" 22 OpMemberName %Foo_0 1 "b" 23 OpName %A_0 "A" 24 OpMemberName %A_0 0 "Data" 25 OpName %C2 "C2" 26 OpName %B "B" 27 OpMemberName %B 0 "Data" 28 OpName %C3 "C3" 29 OpName %B_0 "B" 30 OpMemberName %B_0 0 "Data" 31 OpName %C4 "C4" 32 OpMemberDecorate %Foo 0 Offset 0 33 OpMemberDecorate %Foo 1 Offset 4 34 OpDecorate %_runtimearr_Foo ArrayStride 8 35 OpMemberDecorate %A 0 Offset 0 36 OpDecorate %A BufferBlock 37 OpDecorate %C1 DescriptorSet 0 38 OpDecorate %C1 Binding 1 39 OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId 40 OpMemberDecorate %Foo_0 0 Offset 0 41 OpMemberDecorate %Foo_0 1 Offset 4 42 OpDecorate %_arr_Foo_0_uint_1024 ArrayStride 16 43 OpMemberDecorate %A_0 0 Offset 0 44 OpDecorate %A_0 Block 45 OpDecorate %C2 DescriptorSet 0 46 OpDecorate %C2 Binding 2 47 OpDecorate %_runtimearr_Foo_0 ArrayStride 8 48 OpMemberDecorate %B 0 Offset 0 49 OpDecorate %B BufferBlock 50 OpDecorate %C3 DescriptorSet 0 51 OpDecorate %C3 Binding 0 52 OpDecorate %_arr_Foo_0_uint_1024_0 ArrayStride 16 53 OpMemberDecorate %B_0 0 Offset 0 54 OpDecorate %B_0 Block 55 OpDecorate %C4 DescriptorSet 0 56 OpDecorate %C4 Binding 3 57 %void = OpTypeVoid 58 %3 = OpTypeFunction %void 59 %int = OpTypeInt 32 1 60 %Foo = OpTypeStruct %int %int 61%_runtimearr_Foo = OpTypeRuntimeArray %Foo 62 %A = OpTypeStruct %_runtimearr_Foo 63%_ptr_Uniform_A = OpTypePointer Uniform %A 64 %C1 = OpVariable %_ptr_Uniform_A Uniform 65 %int_0 = OpConstant %int 0 66 %uint = OpTypeInt 32 0 67 %v3uint = OpTypeVector %uint 3 68%_ptr_Input_v3uint = OpTypePointer Input %v3uint 69%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input 70 %uint_0 = OpConstant %uint 0 71%_ptr_Input_uint = OpTypePointer Input %uint 72 %Foo_0 = OpTypeStruct %int %int 73 %uint_1024 = OpConstant %uint 1024 74%_arr_Foo_0_uint_1024 = OpTypeArray %Foo_0 %uint_1024 75 %A_0 = OpTypeStruct %_arr_Foo_0_uint_1024 76%_ptr_Uniform_A_0 = OpTypePointer Uniform %A_0 77 %C2 = OpVariable %_ptr_Uniform_A_0 Uniform 78%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0 79%_ptr_Uniform_Foo = OpTypePointer Uniform %Foo 80%_ptr_Uniform_int = OpTypePointer Uniform %int 81 %int_1 = OpConstant %int 1 82%_runtimearr_Foo_0 = OpTypeRuntimeArray %Foo 83 %B = OpTypeStruct %_runtimearr_Foo_0 84%_ptr_Uniform_B = OpTypePointer Uniform %B 85 %C3 = OpVariable %_ptr_Uniform_B Uniform 86%_arr_Foo_0_uint_1024_0 = OpTypeArray %Foo_0 %uint_1024 87 %B_0 = OpTypeStruct %_arr_Foo_0_uint_1024_0 88%_ptr_Uniform_B_0 = OpTypePointer Uniform %B_0 89 %C4 = OpVariable %_ptr_Uniform_B_0 Uniform 90 %main = OpFunction %void None %3 91 %5 = OpLabel 92 %19 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 93 %20 = OpLoad %uint %19 94 %27 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 95 %28 = OpLoad %uint %27 96 %30 = OpAccessChain %_ptr_Uniform_Foo_0 %C2 %int_0 %28 97 %31 = OpLoad %Foo_0 %30 98 %33 = OpAccessChain %_ptr_Uniform_Foo %C1 %int_0 %20 99 %34 = OpCompositeExtract %int %31 0 100 %36 = OpAccessChain %_ptr_Uniform_int %33 %int_0 101 OpStore %36 %34 102 %37 = OpCompositeExtract %int %31 1 103 %39 = OpAccessChain %_ptr_Uniform_int %33 %int_1 104 OpStore %39 %37 105 %44 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 106 %45 = OpLoad %uint %44 107 %50 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 108 %51 = OpLoad %uint %50 109 %52 = OpAccessChain %_ptr_Uniform_Foo_0 %C4 %int_0 %51 110 %53 = OpLoad %Foo_0 %52 111 %54 = OpAccessChain %_ptr_Uniform_Foo %C3 %int_0 %45 112 %55 = OpCompositeExtract %int %53 0 113 %56 = OpAccessChain %_ptr_Uniform_int %54 %int_0 114 OpStore %56 %55 115 %57 = OpCompositeExtract %int %53 1 116 %58 = OpAccessChain %_ptr_Uniform_int %54 %int_1 117 OpStore %58 %57 118 OpReturn 119 OpFunctionEnd 120