1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor 5 OpExecutionMode %_entrypoint_v OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "a" 9 OpMemberName %_UniformBuffer 1 "b" 10 OpMemberName %_UniformBuffer 2 "c" 11 OpMemberName %_UniformBuffer 3 "d" 12 OpMemberName %_UniformBuffer 4 "e" 13 OpName %_entrypoint_v "_entrypoint_v" 14 OpName %main "main" 15 OpName %result "result" 16 OpDecorate %sk_FragColor RelaxedPrecision 17 OpDecorate %sk_FragColor Location 0 18 OpDecorate %sk_FragColor Index 0 19 OpMemberDecorate %_UniformBuffer 0 Offset 0 20 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 21 OpMemberDecorate %_UniformBuffer 1 Offset 4 22 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 23 OpMemberDecorate %_UniformBuffer 2 Offset 8 24 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 25 OpMemberDecorate %_UniformBuffer 3 Offset 16 26 OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision 27 OpMemberDecorate %_UniformBuffer 4 Offset 32 28 OpMemberDecorate %_UniformBuffer 4 RelaxedPrecision 29 OpDecorate %_UniformBuffer Block 30 OpDecorate %7 Binding 0 31 OpDecorate %7 DescriptorSet 0 32 OpDecorate %result RelaxedPrecision 33 OpDecorate %25 RelaxedPrecision 34 OpDecorate %28 RelaxedPrecision 35 OpDecorate %29 RelaxedPrecision 36 OpDecorate %34 RelaxedPrecision 37 OpDecorate %37 RelaxedPrecision 38 OpDecorate %40 RelaxedPrecision 39 OpDecorate %43 RelaxedPrecision 40 OpDecorate %47 RelaxedPrecision 41 OpDecorate %50 RelaxedPrecision 42 OpDecorate %52 RelaxedPrecision 43 OpDecorate %56 RelaxedPrecision 44 OpDecorate %57 RelaxedPrecision 45 OpDecorate %60 RelaxedPrecision 46 OpDecorate %61 RelaxedPrecision 47 %float = OpTypeFloat 32 48 %v4float = OpTypeVector %float 4 49%_ptr_Output_v4float = OpTypePointer Output %v4float 50%sk_FragColor = OpVariable %_ptr_Output_v4float Output 51%_UniformBuffer = OpTypeStruct %float %float %float %v4float %v4float 52%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 53 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 54 %void = OpTypeVoid 55 %12 = OpTypeFunction %void 56 %float_0 = OpConstant %float 0 57 %v2float = OpTypeVector %float 2 58 %16 = OpConstantComposite %v2float %float_0 %float_0 59%_ptr_Function_v2float = OpTypePointer Function %v2float 60 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 61%_ptr_Function_v4float = OpTypePointer Function %v4float 62%float_6_00000015e_26 = OpConstant %float 6.00000015e+26 63 %float_2 = OpConstant %float 2 64%_ptr_Uniform_float = OpTypePointer Uniform %float 65 %int = OpTypeInt 32 1 66 %int_0 = OpConstant %int 0 67 %int_1 = OpConstant %int 1 68 %int_2 = OpConstant %int 2 69%_ptr_Function_float = OpTypePointer Function %float 70%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 71 %int_3 = OpConstant %int 3 72 %int_4 = OpConstant %int 4 73 %float_0_5 = OpConstant %float 0.5 74%float_n0_866025388 = OpConstant %float -0.866025388 75 %55 = OpConstantComposite %v2float %float_0_5 %float_n0_866025388 76 %v3float = OpTypeVector %float 3 77 %59 = OpConstantComposite %v3float %float_0_5 %float_0 %float_n0_866025388 78 %62 = OpConstantComposite %v4float %float_0_5 %float_0 %float_0 %float_n0_866025388 79%_entrypoint_v = OpFunction %void None %12 80 %13 = OpLabel 81 %17 = OpVariable %_ptr_Function_v2float Function 82 OpStore %17 %16 83 %19 = OpFunctionCall %v4float %main %17 84 OpStore %sk_FragColor %19 85 OpReturn 86 OpFunctionEnd 87 %main = OpFunction %v4float None %20 88 %21 = OpFunctionParameter %_ptr_Function_v2float 89 %22 = OpLabel 90 %result = OpVariable %_ptr_Function_v4float Function 91 %25 = OpExtInst %float %1 Refract %float_6_00000015e_26 %float_2 %float_2 92 %28 = OpCompositeConstruct %v4float %25 %25 %25 %25 93 OpStore %result %28 94 %30 = OpAccessChain %_ptr_Uniform_float %7 %int_0 95 %34 = OpLoad %float %30 96 %35 = OpAccessChain %_ptr_Uniform_float %7 %int_1 97 %37 = OpLoad %float %35 98 %38 = OpAccessChain %_ptr_Uniform_float %7 %int_2 99 %40 = OpLoad %float %38 100 %29 = OpExtInst %float %1 Refract %34 %37 %40 101 %41 = OpAccessChain %_ptr_Function_float %result %int_0 102 OpStore %41 %29 103 %44 = OpAccessChain %_ptr_Uniform_v4float %7 %int_3 104 %47 = OpLoad %v4float %44 105 %48 = OpAccessChain %_ptr_Uniform_v4float %7 %int_4 106 %50 = OpLoad %v4float %48 107 %51 = OpAccessChain %_ptr_Uniform_float %7 %int_2 108 %52 = OpLoad %float %51 109 %43 = OpExtInst %v4float %1 Refract %47 %50 %52 110 OpStore %result %43 111 %56 = OpLoad %v4float %result 112 %57 = OpVectorShuffle %v4float %56 %55 4 5 2 3 113 OpStore %result %57 114 %60 = OpLoad %v4float %result 115 %61 = OpVectorShuffle %v4float %60 %59 4 5 6 3 116 OpStore %result %61 117 OpStore %result %62 118 OpReturnValue %62 119 OpFunctionEnd 120