1*c8dee2aaSAndroid Build Coastguard Worker OpCapability Shader 2*c8dee2aaSAndroid Build Coastguard Worker %1 = OpExtInstImport "GLSL.std.450" 3*c8dee2aaSAndroid Build Coastguard Worker OpMemoryModel Logical GLSL450 4*c8dee2aaSAndroid Build Coastguard Worker OpEntryPoint GLCompute %main "main" %sk_LocalInvocationID 5*c8dee2aaSAndroid Build Coastguard Worker OpExecutionMode %main LocalSize 64 1 1 6*c8dee2aaSAndroid Build Coastguard Worker OpName %ssbo "ssbo" 7*c8dee2aaSAndroid Build Coastguard Worker OpMemberName %ssbo 0 "globalCounter" 8*c8dee2aaSAndroid Build Coastguard Worker OpName %sk_LocalInvocationID "sk_LocalInvocationID" 9*c8dee2aaSAndroid Build Coastguard Worker OpName %localCounter "localCounter" 10*c8dee2aaSAndroid Build Coastguard Worker OpName %main "main" 11*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %ssbo 0 Offset 0 12*c8dee2aaSAndroid Build Coastguard Worker OpMemberDecorate %ssbo 0 RelaxedPrecision 13*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %ssbo BufferBlock 14*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %3 Binding 0 15*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %3 DescriptorSet 0 16*c8dee2aaSAndroid Build Coastguard Worker OpDecorate %sk_LocalInvocationID BuiltIn LocalInvocationId 17*c8dee2aaSAndroid Build Coastguard Worker %uint = OpTypeInt 32 0 18*c8dee2aaSAndroid Build Coastguard Worker %ssbo = OpTypeStruct %uint 19*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_ssbo = OpTypePointer Uniform %ssbo 20*c8dee2aaSAndroid Build Coastguard Worker %3 = OpVariable %_ptr_Uniform_ssbo Uniform 21*c8dee2aaSAndroid Build Coastguard Worker %v3uint = OpTypeVector %uint 3 22*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Input_v3uint = OpTypePointer Input %v3uint 23*c8dee2aaSAndroid Build Coastguard Worker%sk_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input 24*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint 25*c8dee2aaSAndroid Build Coastguard Worker%localCounter = OpVariable %_ptr_Workgroup_uint Workgroup 26*c8dee2aaSAndroid Build Coastguard Worker %void = OpTypeVoid 27*c8dee2aaSAndroid Build Coastguard Worker %13 = OpTypeFunction %void 28*c8dee2aaSAndroid Build Coastguard Worker %uint_0 = OpConstant %uint 0 29*c8dee2aaSAndroid Build Coastguard Worker %bool = OpTypeBool 30*c8dee2aaSAndroid Build Coastguard Worker %uint_2 = OpConstant %uint 2 31*c8dee2aaSAndroid Build Coastguard Worker %uint_264 = OpConstant %uint 264 32*c8dee2aaSAndroid Build Coastguard Worker %uint_1 = OpConstant %uint 1 33*c8dee2aaSAndroid Build Coastguard Worker %int = OpTypeInt 32 1 34*c8dee2aaSAndroid Build Coastguard Worker %int_0 = OpConstant %int 0 35*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_uint = OpTypePointer Uniform %uint 36*c8dee2aaSAndroid Build Coastguard Worker %main = OpFunction %void None %13 37*c8dee2aaSAndroid Build Coastguard Worker %14 = OpLabel 38*c8dee2aaSAndroid Build Coastguard Worker %15 = OpLoad %v3uint %sk_LocalInvocationID 39*c8dee2aaSAndroid Build Coastguard Worker %16 = OpCompositeExtract %uint %15 0 40*c8dee2aaSAndroid Build Coastguard Worker %18 = OpIEqual %bool %16 %uint_0 41*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %21 None 42*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %18 %20 %21 43*c8dee2aaSAndroid Build Coastguard Worker %20 = OpLabel 44*c8dee2aaSAndroid Build Coastguard Worker OpAtomicStore %localCounter %uint_2 %uint_0 %uint_0 45*c8dee2aaSAndroid Build Coastguard Worker OpBranch %21 46*c8dee2aaSAndroid Build Coastguard Worker %21 = OpLabel 47*c8dee2aaSAndroid Build Coastguard Worker OpControlBarrier %uint_2 %uint_2 %uint_264 48*c8dee2aaSAndroid Build Coastguard Worker %26 = OpAtomicIAdd %uint %localCounter %uint_2 %uint_0 %uint_1 49*c8dee2aaSAndroid Build Coastguard Worker OpControlBarrier %uint_2 %uint_2 %uint_264 50*c8dee2aaSAndroid Build Coastguard Worker %29 = OpLoad %v3uint %sk_LocalInvocationID 51*c8dee2aaSAndroid Build Coastguard Worker %30 = OpCompositeExtract %uint %29 0 52*c8dee2aaSAndroid Build Coastguard Worker %31 = OpIEqual %bool %30 %uint_0 53*c8dee2aaSAndroid Build Coastguard Worker OpSelectionMerge %33 None 54*c8dee2aaSAndroid Build Coastguard Worker OpBranchConditional %31 %32 %33 55*c8dee2aaSAndroid Build Coastguard Worker %32 = OpLabel 56*c8dee2aaSAndroid Build Coastguard Worker %37 = OpAccessChain %_ptr_Uniform_uint %3 %int_0 57*c8dee2aaSAndroid Build Coastguard Worker %39 = OpAtomicLoad %uint %localCounter %uint_2 %uint_0 58*c8dee2aaSAndroid Build Coastguard Worker %34 = OpAtomicIAdd %uint %37 %uint_1 %uint_0 %39 59*c8dee2aaSAndroid Build Coastguard Worker OpBranch %33 60*c8dee2aaSAndroid Build Coastguard Worker %33 = OpLabel 61*c8dee2aaSAndroid Build Coastguard Worker OpReturn 62*c8dee2aaSAndroid Build Coastguard Worker OpFunctionEnd 63