1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %main "main" %sk_FragColor 5 OpExecutionMode %main OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "src" 9 OpMemberName %_UniformBuffer 1 "dst" 10 OpName %main "main" 11 OpDecorate %sk_FragColor RelaxedPrecision 12 OpDecorate %sk_FragColor Location 0 13 OpDecorate %sk_FragColor Index 0 14 OpMemberDecorate %_UniformBuffer 0 Offset 0 15 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 16 OpMemberDecorate %_UniformBuffer 1 Offset 16 17 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 18 OpDecorate %_UniformBuffer Block 19 OpDecorate %7 Binding 0 20 OpDecorate %7 DescriptorSet 0 21 OpDecorate %17 RelaxedPrecision 22 OpDecorate %18 RelaxedPrecision 23 OpDecorate %22 RelaxedPrecision 24 OpDecorate %23 RelaxedPrecision 25 OpDecorate %24 RelaxedPrecision 26 OpDecorate %27 RelaxedPrecision 27 OpDecorate %28 RelaxedPrecision 28 OpDecorate %29 RelaxedPrecision 29 OpDecorate %31 RelaxedPrecision 30 OpDecorate %32 RelaxedPrecision 31 OpDecorate %33 RelaxedPrecision 32 OpDecorate %34 RelaxedPrecision 33 OpDecorate %35 RelaxedPrecision 34 OpDecorate %36 RelaxedPrecision 35 OpDecorate %37 RelaxedPrecision 36 OpDecorate %39 RelaxedPrecision 37 OpDecorate %40 RelaxedPrecision 38 OpDecorate %43 RelaxedPrecision 39 OpDecorate %44 RelaxedPrecision 40 OpDecorate %45 RelaxedPrecision 41 OpDecorate %47 RelaxedPrecision 42 OpDecorate %48 RelaxedPrecision 43 OpDecorate %49 RelaxedPrecision 44 OpDecorate %50 RelaxedPrecision 45 OpDecorate %51 RelaxedPrecision 46 %float = OpTypeFloat 32 47 %v4float = OpTypeVector %float 4 48%_ptr_Output_v4float = OpTypePointer Output %v4float 49%sk_FragColor = OpVariable %_ptr_Output_v4float Output 50%_UniformBuffer = OpTypeStruct %v4float %v4float 51%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 52 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 53 %void = OpTypeVoid 54 %11 = OpTypeFunction %void 55%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 56 %int = OpTypeInt 32 1 57 %int_1 = OpConstant %int 1 58 %v3float = OpTypeVector %float 3 59 %int_0 = OpConstant %int 0 60 %float_2 = OpConstant %float 2 61 %float_1 = OpConstant %float 1 62 %main = OpFunction %void None %11 63 %12 = OpLabel 64 %13 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 65 %17 = OpLoad %v4float %13 66 %18 = OpVectorShuffle %v3float %17 %17 0 1 2 67 %20 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 68 %22 = OpLoad %v4float %20 69 %23 = OpVectorShuffle %v3float %22 %22 0 1 2 70 %24 = OpFAdd %v3float %18 %23 71 %26 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 72 %27 = OpLoad %v4float %26 73 %28 = OpVectorShuffle %v3float %27 %27 0 1 2 74 %29 = OpVectorTimesScalar %v3float %28 %float_2 75 %30 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 76 %31 = OpLoad %v4float %30 77 %32 = OpVectorShuffle %v3float %31 %31 0 1 2 78 %33 = OpFMul %v3float %29 %32 79 %34 = OpFSub %v3float %24 %33 80 %35 = OpCompositeExtract %float %34 0 81 %36 = OpCompositeExtract %float %34 1 82 %37 = OpCompositeExtract %float %34 2 83 %38 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 84 %39 = OpLoad %v4float %38 85 %40 = OpCompositeExtract %float %39 3 86 %42 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 87 %43 = OpLoad %v4float %42 88 %44 = OpCompositeExtract %float %43 3 89 %45 = OpFSub %float %float_1 %44 90 %46 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 91 %47 = OpLoad %v4float %46 92 %48 = OpCompositeExtract %float %47 3 93 %49 = OpFMul %float %45 %48 94 %50 = OpFAdd %float %40 %49 95 %51 = OpCompositeConstruct %v4float %35 %36 %37 %50 96 OpStore %sk_FragColor %51 97 OpReturn 98 OpFunctionEnd 99