xref: /aosp_15_r20/external/skia/tests/sksl/compute/Desaturate.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 %main "main"
11               OpName %_0_color "_0_color"
12               OpDecorate %sk_GlobalInvocationID BuiltIn GlobalInvocationId
13               OpDecorate %src Binding 0
14               OpDecorate %src DescriptorSet 0
15               OpDecorate %dest Binding 1
16               OpDecorate %dest DescriptorSet 0
17               OpDecorate %22 RelaxedPrecision
18               OpDecorate %30 RelaxedPrecision
19               OpDecorate %_0_color RelaxedPrecision
20               OpDecorate %39 RelaxedPrecision
21               OpDecorate %42 RelaxedPrecision
22               OpDecorate %43 RelaxedPrecision
23               OpDecorate %49 RelaxedPrecision
24               OpDecorate %50 RelaxedPrecision
25               OpDecorate %51 RelaxedPrecision
26               OpDecorate %53 RelaxedPrecision
27       %uint = OpTypeInt 32 0
28     %v3uint = OpTypeVector %uint 3
29%_ptr_Input_v3uint = OpTypePointer Input %v3uint
30%sk_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
31      %float = OpTypeFloat 32
32          %9 = OpTypeImage %float 2D 0 0 0 2 Rgba8
33%_ptr_UniformConstant_9 = OpTypePointer UniformConstant %9
34        %src = OpVariable %_ptr_UniformConstant_9 UniformConstant
35       %dest = OpVariable %_ptr_UniformConstant_9 UniformConstant
36       %void = OpTypeVoid
37         %13 = OpTypeFunction %void
38       %bool = OpTypeBool
39      %false = OpConstantFalse %bool
40     %v2uint = OpTypeVector %uint 2
41    %v4float = OpTypeVector %float 4
42%_ptr_Function_v4float = OpTypePointer Function %v4float
43    %v3float = OpTypeVector %float 3
44%float_0_219999999 = OpConstant %float 0.219999999
45%float_0_670000017 = OpConstant %float 0.670000017
46%float_0_109999999 = OpConstant %float 0.109999999
47         %48 = OpConstantComposite %v3float %float_0_219999999 %float_0_670000017 %float_0_109999999
48       %main = OpFunction %void None %13
49         %14 = OpLabel
50   %_0_color = OpVariable %_ptr_Function_v4float Function
51         %17 = OpLoad %v3uint %sk_GlobalInvocationID
52         %18 = OpCompositeExtract %uint %17 0
53         %22 = OpLoad %9 %src
54         %21 = OpImageQuerySize %v2uint %22
55         %19 = OpCompositeExtract %uint %21 0
56         %23 = OpULessThan %bool %18 %19
57               OpSelectionMerge %25 None
58               OpBranchConditional %23 %24 %25
59         %24 = OpLabel
60         %26 = OpLoad %v3uint %sk_GlobalInvocationID
61         %27 = OpCompositeExtract %uint %26 1
62         %30 = OpLoad %9 %src
63         %29 = OpImageQuerySize %v2uint %30
64         %28 = OpCompositeExtract %uint %29 1
65         %31 = OpULessThan %bool %27 %28
66               OpBranch %25
67         %25 = OpLabel
68         %32 = OpPhi %bool %false %14 %31 %24
69               OpSelectionMerge %34 None
70               OpBranchConditional %32 %33 %34
71         %33 = OpLabel
72         %39 = OpLoad %9 %src
73         %40 = OpLoad %v3uint %sk_GlobalInvocationID
74         %41 = OpVectorShuffle %v2uint %40 %40 0 1
75         %38 = OpImageRead %v4float %39 %41
76               OpStore %_0_color %38
77         %43 = OpVectorShuffle %v3float %38 %38 0 1 2
78         %42 = OpDot %float %43 %48
79         %49 = OpCompositeConstruct %v3float %42 %42 %42
80         %50 = OpLoad %v4float %_0_color
81         %51 = OpVectorShuffle %v4float %50 %49 4 5 6 3
82               OpStore %_0_color %51
83         %53 = OpLoad %9 %dest
84         %54 = OpLoad %v3uint %sk_GlobalInvocationID
85         %55 = OpVectorShuffle %v2uint %54 %54 0 1
86               OpImageWrite %53 %55 %51
87               OpBranch %34
88         %34 = OpLabel
89               OpReturn
90               OpFunctionEnd
91