xref: /aosp_15_r20/external/skia/tests/sksl/shared/NoFragCoordsPosRT.asm.vert (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Vertex %main "main" %3 %pos
5               OpName %sk_PerVertex "sk_PerVertex"
6               OpMemberName %sk_PerVertex 0 "sk_Position"
7               OpMemberName %sk_PerVertex 1 "sk_PointSize"
8               OpName %pos "pos"
9               OpName %_UniformBuffer "_UniformBuffer"
10               OpMemberName %_UniformBuffer 0 "sk_RTAdjust"
11               OpName %main "main"
12               OpMemberDecorate %sk_PerVertex 0 BuiltIn Position
13               OpMemberDecorate %sk_PerVertex 1 BuiltIn PointSize
14               OpDecorate %sk_PerVertex Block
15               OpDecorate %pos Location 0
16               OpMemberDecorate %_UniformBuffer 0 Offset 0
17               OpDecorate %_UniformBuffer Block
18               OpDecorate %10 Binding 0
19               OpDecorate %10 DescriptorSet 0
20      %float = OpTypeFloat 32
21    %v4float = OpTypeVector %float 4
22%sk_PerVertex = OpTypeStruct %v4float %float
23%_ptr_Output_sk_PerVertex = OpTypePointer Output %sk_PerVertex
24          %3 = OpVariable %_ptr_Output_sk_PerVertex Output
25%_ptr_Input_v4float = OpTypePointer Input %v4float
26        %pos = OpVariable %_ptr_Input_v4float Input
27%_UniformBuffer = OpTypeStruct %v4float
28%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
29         %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
30       %void = OpTypeVoid
31         %14 = OpTypeFunction %void
32        %int = OpTypeInt 32 1
33      %int_0 = OpConstant %int 0
34%_ptr_Output_v4float = OpTypePointer Output %v4float
35    %v2float = OpTypeVector %float 2
36%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
37    %float_0 = OpConstant %float 0
38       %main = OpFunction %void None %14
39         %15 = OpLabel
40         %16 = OpLoad %v4float %pos
41         %19 = OpAccessChain %_ptr_Output_v4float %3 %int_0
42               OpStore %19 %16
43         %21 = OpAccessChain %_ptr_Output_v4float %3 %int_0
44         %22 = OpLoad %v4float %21
45         %23 = OpVectorShuffle %v2float %22 %22 0 1
46         %25 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
47         %27 = OpLoad %v4float %25
48         %28 = OpVectorShuffle %v2float %27 %27 0 2
49         %29 = OpFMul %v2float %23 %28
50         %30 = OpAccessChain %_ptr_Output_v4float %3 %int_0
51         %31 = OpLoad %v4float %30
52         %32 = OpVectorShuffle %v2float %31 %31 3 3
53         %33 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
54         %34 = OpLoad %v4float %33
55         %35 = OpVectorShuffle %v2float %34 %34 1 3
56         %36 = OpFMul %v2float %32 %35
57         %37 = OpFAdd %v2float %29 %36
58         %38 = OpCompositeExtract %float %37 0
59         %39 = OpCompositeExtract %float %37 1
60         %41 = OpAccessChain %_ptr_Output_v4float %3 %int_0
61         %42 = OpLoad %v4float %41
62         %43 = OpCompositeExtract %float %42 3
63         %44 = OpCompositeConstruct %v4float %38 %39 %float_0 %43
64         %45 = OpAccessChain %_ptr_Output_v4float %3 %int_0
65               OpStore %45 %44
66               OpReturn
67               OpFunctionEnd
68