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: [ 79 "-DARCH_X86_HAVE_AVX2", 80 "-mavx2", 81 "-mfma", 82 ], 83 }, 84 }, 85 riscv64: { 86 enabled: false, 87 }, 88 }, 89 90 shared_libs: [ 91 "libRS_internal", 92 "libc++", 93 "liblog", 94 "libz", 95 96 "libbcinfo", 97 "libblas", 98 ], 99 static_libs: ["libbnnmlowp"], 100 header_libs: [ 101 "libutils_headers", 102 "libhardware_headers", 103 ], 104 105 include_dirs: [ 106 "frameworks/compile/libbcc/include", 107 "frameworks/rs", 108 ], 109 cflags: [ 110 "-Wno-cast-function-type-mismatch", 111 "-Wno-unused-parameter", 112 "-Wno-unused-variable", 113 ], 114} 115