xref: /aosp_15_r20/frameworks/rs/cpu_ref/Android.bp (revision e1eccf28f96817838ad6867f7f39d2351ec11f56)
1package {
2    default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
5cc_library_shared {
6    name: "libRSCpuRef",
7    defaults: ["libbcc-targets"],
8    vendor_available: true,
9    native_bridge_supported: true,
10    double_loadable: true,
11
12    srcs: [
13        "rsCpuCore.cpp",
14        "rsCpuExecutable.cpp",
15        "rsCpuScript.cpp",
16        "rsCpuRuntimeMath.cpp",
17        "rsCpuScriptGroup.cpp",
18        "rsCpuScriptGroup2.cpp",
19        "rsCpuIntrinsic.cpp",
20        "rsCpuIntrinsic3DLUT.cpp",
21        "rsCpuIntrinsicBLAS.cpp",
22        "rsCpuIntrinsicBlend.cpp",
23        "rsCpuIntrinsicBlur.cpp",
24        "rsCpuIntrinsicColorMatrix.cpp",
25        "rsCpuIntrinsicConvolve3x3.cpp",
26        "rsCpuIntrinsicConvolve5x5.cpp",
27        "rsCpuIntrinsicHistogram.cpp",
28        "rsCpuIntrinsicResize.cpp",
29        "rsCpuIntrinsicLUT.cpp",
30        "rsCpuIntrinsicYuvToRGB.cpp",
31    ],
32
33    arch: {
34        arm64: {
35            cflags: [
36                "-DARCH_ARM_USE_INTRINSICS",
37                "-DARCH_ARM64_USE_INTRINSICS",
38                "-DARCH_ARM64_HAVE_NEON",
39            ],
40
41            srcs: [
42                "rsCpuIntrinsics_advsimd_3DLUT.S",
43                "rsCpuIntrinsics_advsimd_Convolve.S",
44                "rsCpuIntrinsics_advsimd_Blur.S",
45                "rsCpuIntrinsics_advsimd_ColorMatrix.S",
46                "rsCpuIntrinsics_advsimd_Resize.S",
47                "rsCpuIntrinsics_advsimd_YuvToRGB.S",
48                "rsCpuIntrinsics_advsimd_Blend.S",
49            ],
50        },
51
52        arm: {
53            cflags: [
54                "-DARCH_ARM_HAVE_NEON",
55                "-DARCH_ARM_HAVE_VFP",
56                "-DARCH_ARM_USE_INTRINSICS",
57            ],
58
59            srcs: [
60                "rsCpuIntrinsics_neon_3DLUT.S",
61                "rsCpuIntrinsics_neon_Blend.S",
62                "rsCpuIntrinsics_neon_Blur.S",
63                "rsCpuIntrinsics_neon_Convolve.S",
64                "rsCpuIntrinsics_neon_ColorMatrix.S",
65                "rsCpuIntrinsics_neon_Resize.S",
66                "rsCpuIntrinsics_neon_YuvToRGB.S",
67            ],
68        },
69
70        x86: {
71            cflags: ["-DARCH_X86_HAVE_SSSE3"],
72            srcs: ["rsCpuIntrinsics_x86.cpp"],
73        },
74        x86_64: {
75            cflags: ["-DARCH_X86_HAVE_SSSE3"],
76            srcs: ["rsCpuIntrinsics_x86.cpp"],
77	    avx2: {
78                cflags: ["-DARCH_X86_HAVE_AVX2", "-mavx2", "-mfma"],
79            },
80        },
81        riscv64: {
82            enabled: false,
83        },
84    },
85
86    shared_libs: [
87        "libRS_internal",
88        "libc++",
89        "liblog",
90        "libz",
91
92        "libbcinfo",
93        "libblas",
94    ],
95    static_libs: ["libbnnmlowp"],
96    header_libs: [
97        "libutils_headers",
98        "libhardware_headers",
99    ],
100
101    include_dirs: [
102        "frameworks/compile/libbcc/include",
103        "frameworks/rs",
104    ],
105
106    cflags: [
107        "-Werror",
108        "-Wall",
109        "-Wextra",
110        "-Wno-unused-parameter",
111        "-Wno-unused-variable",
112    ],
113}
114