xref: /aosp_15_r20/external/skia/tests/sksl/compute/DesaturateFunction.asm.comp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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