1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %4 "main" %63 %69 5 OpExecutionMode %4 OriginUpperLeft 6 OpSource ESSL 310 7 OpName %4 "main" 8 OpName %8 "f1(" 9 OpName %10 "f2(" 10 OpName %13 "v" 11 OpName %16 "Buffer" 12 OpMemberName %16 0 "flag1" 13 OpMemberName %16 1 "flag2" 14 OpName %18 "" 15 OpName %34 "v" 16 OpName %63 "color" 17 OpName %69 "v" 18 OpDecorate %8 RelaxedPrecision 19 OpDecorate %10 RelaxedPrecision 20 OpDecorate %13 RelaxedPrecision 21 OpMemberDecorate %16 0 RelaxedPrecision 22 OpMemberDecorate %16 0 Offset 0 23 OpMemberDecorate %16 1 RelaxedPrecision 24 OpMemberDecorate %16 1 Offset 4 25 OpDecorate %16 Block 26 OpDecorate %18 DescriptorSet 0 27 OpDecorate %18 Binding 0 28 OpDecorate %23 RelaxedPrecision 29 OpDecorate %24 RelaxedPrecision 30 OpDecorate %25 RelaxedPrecision 31 OpDecorate %26 RelaxedPrecision 32 OpDecorate %27 RelaxedPrecision 33 OpDecorate %28 RelaxedPrecision 34 OpDecorate %29 RelaxedPrecision 35 OpDecorate %30 RelaxedPrecision 36 OpDecorate %31 RelaxedPrecision 37 OpDecorate %34 RelaxedPrecision 38 OpDecorate %37 RelaxedPrecision 39 OpDecorate %38 RelaxedPrecision 40 OpDecorate %40 RelaxedPrecision 41 OpDecorate %41 RelaxedPrecision 42 OpDecorate %44 RelaxedPrecision 43 OpDecorate %45 RelaxedPrecision 44 OpDecorate %46 RelaxedPrecision 45 OpDecorate %48 RelaxedPrecision 46 OpDecorate %55 RelaxedPrecision 47 OpDecorate %56 RelaxedPrecision 48 OpDecorate %57 RelaxedPrecision 49 OpDecorate %58 RelaxedPrecision 50 OpDecorate %63 RelaxedPrecision 51 OpDecorate %63 Location 0 52 OpDecorate %64 RelaxedPrecision 53 OpDecorate %65 RelaxedPrecision 54 OpDecorate %67 RelaxedPrecision 55 OpDecorate %69 RelaxedPrecision 56 OpDecorate %69 Location 0 57 %2 = OpTypeVoid 58 %3 = OpTypeFunction %2 59 %6 = OpTypeFloat 32 60 %7 = OpTypeFunction %6 61 %12 = OpTypePointer Function %6 62 %14 = OpConstant %6 0 63 %15 = OpTypeInt 32 0 64 %16 = OpTypeStruct %15 %15 65 %17 = OpTypePointer Uniform %16 66 %18 = OpVariable %17 Uniform 67 %19 = OpTypeInt 32 1 68 %20 = OpConstant %19 1 69 %21 = OpTypePointer Uniform %15 70 %35 = OpConstant %19 0 71 %39 = OpConstant %6 10 72 %42 = OpConstant %6 0.5 73 %43 = OpConstant %6 0.699999988 74 %49 = OpConstant %15 0 75 %50 = OpTypeBool 76 %54 = OpConstant %6 0.100000001 77 %61 = OpTypeVector %6 4 78 %62 = OpTypePointer Output %61 79 %63 = OpVariable %62 Output 80 %66 = OpConstant %6 1 81 %68 = OpTypePointer Input %6 82 %69 = OpVariable %68 Input 83 %4 = OpFunction %2 None %3 84 %5 = OpLabel 85 %64 = OpFunctionCall %6 %8 86 %65 = OpFunctionCall %6 %10 87 %67 = OpCompositeConstruct %61 %64 %65 %14 %66 88 OpStore %63 %67 89 OpReturn 90 OpFunctionEnd 91 %8 = OpFunction %6 None %7 92 %9 = OpLabel 93 %13 = OpVariable %12 Function 94 OpStore %13 %14 95 %22 = OpAccessChain %21 %18 %20 96 %23 = OpLoad %15 %22 97 %24 = OpConvertUToF %6 %23 98 %25 = OpExtInst %6 %1 Log2 %24 99 %26 = OpLoad %6 %13 100 %27 = OpFAdd %6 %26 %25 101 OpStore %13 %27 102 %28 = OpLoad %6 %13 103 %29 = OpLoad %6 %13 104 %30 = OpExtInst %6 %1 Sqrt %29 105 %31 = OpFSub %6 %28 %30 106 OpReturnValue %31 107 OpFunctionEnd 108 %10 = OpFunction %6 None %7 109 %11 = OpLabel 110 %34 = OpVariable %12 Function 111 %36 = OpAccessChain %21 %18 %35 112 %37 = OpLoad %15 %36 113 %38 = OpConvertUToF %6 %37 114 %40 = OpFDiv %6 %38 %39 115 OpStore %34 %40 116 %41 = OpLoad %6 %34 117 %44 = OpExtInst %6 %1 FClamp %41 %42 %43 118 %45 = OpLoad %6 %34 119 %46 = OpFMul %6 %45 %44 120 OpStore %34 %46 121 %47 = OpAccessChain %21 %18 %20 122 %48 = OpLoad %15 %47 123 %51 = OpINotEqual %50 %48 %49 124 OpSelectionMerge %53 None 125 OpBranchConditional %51 %52 %53 126 %52 = OpLabel 127 %55 = OpLoad %6 %34 128 %56 = OpFSub %6 %55 %54 129 OpStore %34 %56 130 OpBranch %53 131 %53 = OpLabel 132 %57 = OpLoad %6 %34 133 %58 = OpExtInst %6 %1 Exp %57 134 OpReturnValue %58 135 OpFunctionEnd 136 137