1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint GLCompute %4 "main" %15 %110 5 OpExecutionMode %4 LocalSize 1 1 1 6 OpSource ESSL 310 7 OpName %4 "main" 8 OpName %6 "f1(" 9 OpName %8 "f2(" 10 OpName %12 "x" 11 OpName %15 "gl_GlobalInvocationID" 12 OpName %20 "z" 13 OpName %26 "i" 14 OpName %40 "BufferOut" 15 OpMemberName %40 0 "o_uv4" 16 OpMemberName %40 1 "o_v3" 17 OpMemberName %40 2 "o_i" 18 OpName %42 "" 19 OpName %63 "image2" 20 OpName %79 "image" 21 OpName %89 "i" 22 OpName %110 "gl_LocalInvocationID" 23 OpName %127 "BufferIn" 24 OpMemberName %127 0 "i_u" 25 OpMemberName %127 1 "i_v4" 26 OpMemberName %127 2 "i_f" 27 OpName %129 "" 28 OpDecorate %15 BuiltIn GlobalInvocationId 29 OpMemberDecorate %40 0 Offset 0 30 OpMemberDecorate %40 1 Offset 16 31 OpMemberDecorate %40 2 Offset 28 32 OpDecorate %40 BufferBlock 33 OpDecorate %42 DescriptorSet 0 34 OpDecorate %42 Binding 1 35 OpDecorate %63 DescriptorSet 0 36 OpDecorate %63 Binding 3 37 OpDecorate %79 DescriptorSet 0 38 OpDecorate %79 Binding 2 39 OpDecorate %110 BuiltIn LocalInvocationId 40 OpMemberDecorate %127 0 Offset 0 41 OpMemberDecorate %127 1 RowMajor 42 OpMemberDecorate %127 1 Offset 16 43 OpMemberDecorate %127 1 MatrixStride 16 44 OpMemberDecorate %127 2 Offset 80 45 OpDecorate %127 Block 46 OpDecorate %129 DescriptorSet 0 47 OpDecorate %129 Binding 0 48 %2 = OpTypeVoid 49 %3 = OpTypeFunction %2 50 %10 = OpTypeInt 32 0 51 %11 = OpTypePointer Function %10 52 %13 = OpTypeVector %10 3 53 %14 = OpTypePointer Input %13 54 %15 = OpVariable %14 Input 55 %16 = OpConstant %10 0 56 %17 = OpTypePointer Input %10 57 %21 = OpConstant %10 1 58 %24 = OpTypeInt 32 1 59 %25 = OpTypePointer Function %24 60 %27 = OpConstant %24 0 61 %34 = OpConstant %24 2 62 %35 = OpTypeBool 63 %37 = OpTypeVector %10 4 64 %38 = OpTypeFloat 32 65 %39 = OpTypeVector %38 3 66 %40 = OpTypeStruct %37 %39 %24 67 %41 = OpTypePointer Uniform %40 68 %42 = OpVariable %41 Uniform 69 %46 = OpTypeVector %10 2 70 %48 = OpTypePointer Uniform %37 71 %53 = OpTypePointer Uniform %10 72 %59 = OpConstant %24 1 73 %61 = OpTypeImage %24 2D 0 0 0 2 R32i 74 %62 = OpTypePointer UniformConstant %61 75 %63 = OpVariable %62 UniformConstant 76 %69 = OpTypeVector %24 2 77 %71 = OpTypeVector %24 4 78 %74 = OpTypePointer Uniform %24 79 %76 = OpConstant %10 2 80 %77 = OpConstant %10 3400 81 %78 = OpConstant %10 264 82 %79 = OpVariable %62 UniformConstant 83 %96 = OpConstant %24 3 84 %103 = OpConstantComposite %69 %27 %27 85 %107 = OpTypePointer Uniform %38 86 %110 = OpVariable %14 Input 87 %113 = OpTypeVector %38 2 88 %125 = OpTypeVector %38 4 89 %126 = OpTypeMatrix %125 4 90 %127 = OpTypeStruct %10 %126 %38 91 %128 = OpTypePointer Uniform %127 92 %129 = OpVariable %128 Uniform 93 %4 = OpFunction %2 None %3 94 %5 = OpLabel 95 %123 = OpFunctionCall %2 %8 96 %124 = OpFunctionCall %2 %6 97 OpReturn 98 OpFunctionEnd 99 %6 = OpFunction %2 None %3 100 %7 = OpLabel 101 %12 = OpVariable %11 Function 102 %20 = OpVariable %11 Function 103 %26 = OpVariable %25 Function 104 %18 = OpAccessChain %17 %15 %16 105 %19 = OpLoad %10 %18 106 OpStore %12 %19 107 %22 = OpAccessChain %17 %15 %21 108 %23 = OpLoad %10 %22 109 OpStore %20 %23 110 OpStore %26 %27 111 OpBranch %28 112 %28 = OpLabel 113 OpLoopMerge %30 %31 None 114 OpBranch %32 115 %32 = OpLabel 116 %33 = OpLoad %24 %26 117 %36 = OpSLessThan %35 %33 %34 118 OpBranchConditional %36 %29 %30 119 %29 = OpLabel 120 %43 = OpLoad %10 %12 121 %44 = OpLoad %10 %20 122 %45 = OpIAdd %10 %43 %44 123 %47 = OpCompositeConstruct %46 %45 %45 124 %49 = OpAccessChain %48 %42 %27 125 %50 = OpLoad %37 %49 126 %51 = OpVectorShuffle %46 %50 %50 0 1 127 %52 = OpIAdd %46 %51 %47 128 %54 = OpAccessChain %53 %42 %27 %16 129 %55 = OpCompositeExtract %10 %52 0 130 OpStore %54 %55 131 %56 = OpAccessChain %53 %42 %27 %21 132 %57 = OpCompositeExtract %10 %52 1 133 OpStore %56 %57 134 OpBranch %31 135 %31 = OpLabel 136 %58 = OpLoad %24 %26 137 %60 = OpIAdd %24 %58 %59 138 OpStore %26 %60 139 OpBranch %28 140 %30 = OpLabel 141 %64 = OpLoad %61 %63 142 %65 = OpLoad %10 %12 143 %66 = OpBitcast %24 %65 144 %67 = OpLoad %10 %20 145 %68 = OpBitcast %24 %67 146 %70 = OpCompositeConstruct %69 %66 %68 147 %72 = OpImageRead %71 %64 %70 148 %73 = OpCompositeExtract %24 %72 1 149 %75 = OpAccessChain %74 %42 %34 150 OpStore %75 %73 151 OpMemoryBarrier %76 %77 152 OpControlBarrier %76 %76 %78 153 %80 = OpLoad %61 %79 154 %81 = OpLoad %10 %20 155 %82 = OpBitcast %24 %81 156 %83 = OpLoad %10 %12 157 %84 = OpBitcast %24 %83 158 %85 = OpCompositeConstruct %69 %82 %84 159 %86 = OpAccessChain %74 %42 %34 160 %87 = OpLoad %24 %86 161 %88 = OpCompositeConstruct %71 %87 %27 %27 %27 162 OpImageWrite %80 %85 %88 163 OpReturn 164 OpFunctionEnd 165 %8 = OpFunction %2 None %3 166 %9 = OpLabel 167 %89 = OpVariable %25 Function 168 OpStore %89 %27 169 OpBranch %90 170 %90 = OpLabel 171 OpLoopMerge %92 %93 None 172 OpBranch %94 173 %94 = OpLabel 174 %95 = OpLoad %24 %89 175 %97 = OpSLessThan %35 %95 %96 176 OpBranchConditional %97 %91 %92 177 %91 = OpLabel 178 %98 = OpLoad %24 %89 179 %99 = OpIEqual %35 %98 %27 180 OpSelectionMerge %101 None 181 OpBranchConditional %99 %100 %109 182 %100 = OpLabel 183 %102 = OpLoad %61 %63 184 %104 = OpImageRead %71 %102 %103 185 %105 = OpCompositeExtract %24 %104 0 186 %106 = OpConvertSToF %38 %105 187 %108 = OpAccessChain %107 %42 %59 %16 188 OpStore %108 %106 189 OpBranch %101 190 %109 = OpLabel 191 %111 = OpLoad %13 %110 192 %112 = OpConvertUToF %39 %111 193 %114 = OpCompositeExtract %38 %112 0 194 %115 = OpCompositeExtract %38 %112 1 195 %116 = OpCompositeConstruct %113 %114 %115 196 %117 = OpAccessChain %107 %42 %59 %21 197 %118 = OpCompositeExtract %38 %116 0 198 OpStore %117 %118 199 %119 = OpAccessChain %107 %42 %59 %76 200 %120 = OpCompositeExtract %38 %116 1 201 OpStore %119 %120 202 OpBranch %101 203 %101 = OpLabel 204 OpBranch %93 205 %93 = OpLabel 206 %121 = OpLoad %24 %89 207 %122 = OpIAdd %24 %121 %59 208 OpStore %89 %122 209 OpBranch %90 210 %92 = OpLabel 211 OpReturn 212 OpFunctionEnd 213 214