1 OpCapability ImageQuery 2 OpCapability Shader 3 %1 = OpExtInstImport "GLSL.std.450" 4 OpMemoryModel Logical GLSL450 5 OpEntryPoint GLCompute %main "main" %sk_GlobalInvocationID 6 OpExecutionMode %main LocalSize 16 16 1 7 OpName %sk_GlobalInvocationID "sk_GlobalInvocationID" 8 OpName %src "src" 9 OpName %dest "dest" 10 OpName %desaturate_vTT "desaturate_vTT" 11 OpName %color "color" 12 OpName %main "main" 13 OpDecorate %sk_GlobalInvocationID BuiltIn GlobalInvocationId 14 OpDecorate %src Binding 0 15 OpDecorate %src DescriptorSet 0 16 OpDecorate %dest Binding 1 17 OpDecorate %dest DescriptorSet 0 18 OpDecorate %color RelaxedPrecision 19 OpDecorate %22 RelaxedPrecision 20 OpDecorate %26 RelaxedPrecision 21 OpDecorate %27 RelaxedPrecision 22 OpDecorate %33 RelaxedPrecision 23 OpDecorate %34 RelaxedPrecision 24 OpDecorate %35 RelaxedPrecision 25 OpDecorate %37 RelaxedPrecision 26 OpDecorate %48 RelaxedPrecision 27 OpDecorate %56 RelaxedPrecision 28 %uint = OpTypeInt 32 0 29 %v3uint = OpTypeVector %uint 3 30%_ptr_Input_v3uint = OpTypePointer Input %v3uint 31%sk_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input 32 %float = OpTypeFloat 32 33 %10 = OpTypeImage %float 2D 0 0 0 2 Rgba32f 34%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10 35 %src = OpVariable %_ptr_UniformConstant_10 UniformConstant 36 %dest = OpVariable %_ptr_UniformConstant_10 UniformConstant 37 %void = OpTypeVoid 38 %14 = OpTypeFunction %void %_ptr_UniformConstant_10 %_ptr_UniformConstant_10 39 %v4float = OpTypeVector %float 4 40%_ptr_Function_v4float = OpTypePointer Function %v4float 41 %v2uint = OpTypeVector %uint 2 42 %v3float = OpTypeVector %float 3 43%float_0_219999999 = OpConstant %float 0.219999999 44%float_0_670000017 = OpConstant %float 0.670000017 45%float_0_109999999 = OpConstant %float 0.109999999 46 %32 = OpConstantComposite %v3float %float_0_219999999 %float_0_670000017 %float_0_109999999 47 %40 = OpTypeFunction %void 48 %bool = OpTypeBool 49 %false = OpConstantFalse %bool 50%desaturate_vTT = OpFunction %void None %14 51 %15 = OpFunctionParameter %_ptr_UniformConstant_10 52 %16 = OpFunctionParameter %_ptr_UniformConstant_10 53 %17 = OpLabel 54 %color = OpVariable %_ptr_Function_v4float Function 55 %22 = OpLoad %10 %15 56 %23 = OpLoad %v3uint %sk_GlobalInvocationID 57 %24 = OpVectorShuffle %v2uint %23 %23 0 1 58 %21 = OpImageRead %v4float %22 %24 59 OpStore %color %21 60 %27 = OpVectorShuffle %v3float %21 %21 0 1 2 61 %26 = OpDot %float %27 %32 62 %33 = OpCompositeConstruct %v3float %26 %26 %26 63 %34 = OpLoad %v4float %color 64 %35 = OpVectorShuffle %v4float %34 %33 4 5 6 3 65 OpStore %color %35 66 %37 = OpLoad %10 %16 67 %38 = OpLoad %v3uint %sk_GlobalInvocationID 68 %39 = OpVectorShuffle %v2uint %38 %38 0 1 69 OpImageWrite %37 %39 %35 70 OpReturn 71 OpFunctionEnd 72 %main = OpFunction %void None %40 73 %41 = OpLabel 74 %44 = OpLoad %v3uint %sk_GlobalInvocationID 75 %45 = OpCompositeExtract %uint %44 0 76 %48 = OpLoad %10 %src 77 %47 = OpImageQuerySize %v2uint %48 78 %46 = OpCompositeExtract %uint %47 0 79 %49 = OpULessThan %bool %45 %46 80 OpSelectionMerge %51 None 81 OpBranchConditional %49 %50 %51 82 %50 = OpLabel 83 %52 = OpLoad %v3uint %sk_GlobalInvocationID 84 %53 = OpCompositeExtract %uint %52 1 85 %56 = OpLoad %10 %src 86 %55 = OpImageQuerySize %v2uint %56 87 %54 = OpCompositeExtract %uint %55 1 88 %57 = OpULessThan %bool %53 %54 89 OpBranch %51 90 %51 = OpLabel 91 %58 = OpPhi %bool %false %41 %57 %50 92 OpSelectionMerge %60 None 93 OpBranchConditional %58 %59 %60 94 %59 = OpLabel 95 %61 = OpFunctionCall %void %desaturate_vTT %src %dest 96 OpBranch %60 97 %60 = OpLabel 98 OpReturn 99 OpFunctionEnd 100