OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %4 "main" %15 %110 OpExecutionMode %4 LocalSize 1 1 1 OpSource ESSL 310 OpName %4 "main" OpName %6 "f1(" OpName %8 "f2(" OpName %12 "x" OpName %15 "gl_GlobalInvocationID" OpName %20 "z" OpName %26 "i" OpName %40 "BufferOut" OpMemberName %40 0 "o_uv4" OpMemberName %40 1 "o_v3" OpMemberName %40 2 "o_i" OpName %42 "" OpName %63 "image2" OpName %79 "image" OpName %89 "i" OpName %110 "gl_LocalInvocationID" OpName %127 "BufferIn" OpMemberName %127 0 "i_u" OpMemberName %127 1 "i_v4" OpMemberName %127 2 "i_f" OpName %129 "" OpDecorate %15 BuiltIn GlobalInvocationId OpMemberDecorate %40 0 Offset 0 OpMemberDecorate %40 1 Offset 16 OpMemberDecorate %40 2 Offset 28 OpDecorate %40 BufferBlock OpDecorate %42 DescriptorSet 0 OpDecorate %42 Binding 1 OpDecorate %63 DescriptorSet 0 OpDecorate %63 Binding 3 OpDecorate %79 DescriptorSet 0 OpDecorate %79 Binding 2 OpDecorate %110 BuiltIn LocalInvocationId OpMemberDecorate %127 0 Offset 0 OpMemberDecorate %127 1 RowMajor OpMemberDecorate %127 1 Offset 16 OpMemberDecorate %127 1 MatrixStride 16 OpMemberDecorate %127 2 Offset 80 OpDecorate %127 Block OpDecorate %129 DescriptorSet 0 OpDecorate %129 Binding 0 %2 = OpTypeVoid %3 = OpTypeFunction %2 %10 = OpTypeInt 32 0 %11 = OpTypePointer Function %10 %13 = OpTypeVector %10 3 %14 = OpTypePointer Input %13 %15 = OpVariable %14 Input %16 = OpConstant %10 0 %17 = OpTypePointer Input %10 %21 = OpConstant %10 1 %24 = OpTypeInt 32 1 %25 = OpTypePointer Function %24 %27 = OpConstant %24 0 %34 = OpConstant %24 2 %35 = OpTypeBool %37 = OpTypeVector %10 4 %38 = OpTypeFloat 32 %39 = OpTypeVector %38 3 %40 = OpTypeStruct %37 %39 %24 %41 = OpTypePointer Uniform %40 %42 = OpVariable %41 Uniform %46 = OpTypeVector %10 2 %48 = OpTypePointer Uniform %37 %53 = OpTypePointer Uniform %10 %59 = OpConstant %24 1 %61 = OpTypeImage %24 2D 0 0 0 2 R32i %62 = OpTypePointer UniformConstant %61 %63 = OpVariable %62 UniformConstant %69 = OpTypeVector %24 2 %71 = OpTypeVector %24 4 %74 = OpTypePointer Uniform %24 %76 = OpConstant %10 2 %77 = OpConstant %10 3400 %78 = OpConstant %10 264 %79 = OpVariable %62 UniformConstant %96 = OpConstant %24 3 %103 = OpConstantComposite %69 %27 %27 %107 = OpTypePointer Uniform %38 %110 = OpVariable %14 Input %113 = OpTypeVector %38 2 %125 = OpTypeVector %38 4 %126 = OpTypeMatrix %125 4 %127 = OpTypeStruct %10 %126 %38 %128 = OpTypePointer Uniform %127 %129 = OpVariable %128 Uniform %4 = OpFunction %2 None %3 %5 = OpLabel %123 = OpFunctionCall %2 %8 %124 = OpFunctionCall %2 %6 OpReturn OpFunctionEnd %6 = OpFunction %2 None %3 %7 = OpLabel %12 = OpVariable %11 Function %20 = OpVariable %11 Function %26 = OpVariable %25 Function %18 = OpAccessChain %17 %15 %16 %19 = OpLoad %10 %18 OpStore %12 %19 %22 = OpAccessChain %17 %15 %21 %23 = OpLoad %10 %22 OpStore %20 %23 OpStore %26 %27 OpBranch %28 %28 = OpLabel OpLoopMerge %30 %31 None OpBranch %32 %32 = OpLabel %33 = OpLoad %24 %26 %36 = OpSLessThan %35 %33 %34 OpBranchConditional %36 %29 %30 %29 = OpLabel %43 = OpLoad %10 %12 %44 = OpLoad %10 %20 %45 = OpIAdd %10 %43 %44 %47 = OpCompositeConstruct %46 %45 %45 %49 = OpAccessChain %48 %42 %27 %50 = OpLoad %37 %49 %51 = OpVectorShuffle %46 %50 %50 0 1 %52 = OpIAdd %46 %51 %47 %54 = OpAccessChain %53 %42 %27 %16 %55 = OpCompositeExtract %10 %52 0 OpStore %54 %55 %56 = OpAccessChain %53 %42 %27 %21 %57 = OpCompositeExtract %10 %52 1 OpStore %56 %57 OpBranch %31 %31 = OpLabel %58 = OpLoad %24 %26 %60 = OpIAdd %24 %58 %59 OpStore %26 %60 OpBranch %28 %30 = OpLabel %64 = OpLoad %61 %63 %65 = OpLoad %10 %12 %66 = OpBitcast %24 %65 %67 = OpLoad %10 %20 %68 = OpBitcast %24 %67 %70 = OpCompositeConstruct %69 %66 %68 %72 = OpImageRead %71 %64 %70 %73 = OpCompositeExtract %24 %72 1 %75 = OpAccessChain %74 %42 %34 OpStore %75 %73 OpMemoryBarrier %76 %77 OpControlBarrier %76 %76 %78 %80 = OpLoad %61 %79 %81 = OpLoad %10 %20 %82 = OpBitcast %24 %81 %83 = OpLoad %10 %12 %84 = OpBitcast %24 %83 %85 = OpCompositeConstruct %69 %82 %84 %86 = OpAccessChain %74 %42 %34 %87 = OpLoad %24 %86 %88 = OpCompositeConstruct %71 %87 %27 %27 %27 OpImageWrite %80 %85 %88 OpReturn OpFunctionEnd %8 = OpFunction %2 None %3 %9 = OpLabel %89 = OpVariable %25 Function OpStore %89 %27 OpBranch %90 %90 = OpLabel OpLoopMerge %92 %93 None OpBranch %94 %94 = OpLabel %95 = OpLoad %24 %89 %97 = OpSLessThan %35 %95 %96 OpBranchConditional %97 %91 %92 %91 = OpLabel %98 = OpLoad %24 %89 %99 = OpIEqual %35 %98 %27 OpSelectionMerge %101 None OpBranchConditional %99 %100 %109 %100 = OpLabel %102 = OpLoad %61 %63 %104 = OpImageRead %71 %102 %103 %105 = OpCompositeExtract %24 %104 0 %106 = OpConvertSToF %38 %105 %108 = OpAccessChain %107 %42 %59 %16 OpStore %108 %106 OpBranch %101 %109 = OpLabel %111 = OpLoad %13 %110 %112 = OpConvertUToF %39 %111 %114 = OpCompositeExtract %38 %112 0 %115 = OpCompositeExtract %38 %112 1 %116 = OpCompositeConstruct %113 %114 %115 %117 = OpAccessChain %107 %42 %59 %21 %118 = OpCompositeExtract %38 %116 0 OpStore %117 %118 %119 = OpAccessChain %107 %42 %59 %76 %120 = OpCompositeExtract %38 %116 1 OpStore %119 %120 OpBranch %101 %101 = OpLabel OpBranch %93 %93 = OpLabel %121 = OpLoad %24 %89 %122 = OpIAdd %24 %121 %59 OpStore %89 %122 OpBranch %90 %92 = OpLabel OpReturn OpFunctionEnd