blob: 7d771bc51f654e59b4ba1c2d81b0b66cd7007f9b [file] [log] [blame]
Johann589bae82018-04-27 10:57:44 -07001#
2# Copyright (c) 2017, Alliance for Open Media. All rights reserved
3#
4# This source code is subject to the terms of the BSD 2 Clause License and the
5# Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License was
6# not distributed with this source code in the LICENSE file, you can obtain it
7# at www.aomedia.org/license/software. If the Alliance for Open Media Patent
8# License 1.0 was not distributed with this source code in the PATENTS file, you
9# can obtain it at www.aomedia.org/license/patent.
10#
11if(AOM_AOM_DSP_AOM_DSP_CMAKE_)
Johann29a59732018-04-27 10:51:00 -070012 return()
Johann589bae82018-04-27 10:57:44 -070013endif() # AOM_AOM_DSP_AOM_DSP_CMAKE_
Tom Finegan17ccaec2017-05-25 17:47:42 -070014set(AOM_AOM_DSP_AOM_DSP_CMAKE_ 1)
15
Tom Finegan744cdc02018-05-14 09:31:38 -070016list(APPEND AOM_DSP_COMMON_SOURCES
Johann23ebc872018-05-15 12:05:49 -070017 "${AOM_ROOT}/aom_dsp/aom_convolve.c"
Johann23ebc872018-05-15 12:05:49 -070018 "${AOM_ROOT}/aom_dsp/aom_dsp_common.h"
19 "${AOM_ROOT}/aom_dsp/aom_filter.h"
20 "${AOM_ROOT}/aom_dsp/aom_simd.h"
21 "${AOM_ROOT}/aom_dsp/aom_simd_inline.h"
Tom Finegan0d91c102018-08-24 21:19:40 -070022 "${AOM_ROOT}/aom_dsp/bitreader_buffer.c"
23 "${AOM_ROOT}/aom_dsp/bitreader_buffer.h"
24 "${AOM_ROOT}/aom_dsp/bitwriter_buffer.c"
25 "${AOM_ROOT}/aom_dsp/bitwriter_buffer.h"
Johann23ebc872018-05-15 12:05:49 -070026 "${AOM_ROOT}/aom_dsp/blend.h"
27 "${AOM_ROOT}/aom_dsp/blend_a64_hmask.c"
28 "${AOM_ROOT}/aom_dsp/blend_a64_mask.c"
29 "${AOM_ROOT}/aom_dsp/blend_a64_vmask.c"
30 "${AOM_ROOT}/aom_dsp/entcode.c"
31 "${AOM_ROOT}/aom_dsp/entcode.h"
Neil Birkbeck04721792018-06-12 08:03:48 -070032 "${AOM_ROOT}/aom_dsp/fft.c"
33 "${AOM_ROOT}/aom_dsp/fft_common.h"
Johann23ebc872018-05-15 12:05:49 -070034 "${AOM_ROOT}/aom_dsp/intrapred.c"
35 "${AOM_ROOT}/aom_dsp/intrapred_common.h"
Johann23ebc872018-05-15 12:05:49 -070036 "${AOM_ROOT}/aom_dsp/loopfilter.c"
37 "${AOM_ROOT}/aom_dsp/prob.h"
Tom Finegan067e9842018-09-28 10:15:09 -070038 "${AOM_ROOT}/aom_dsp/recenter.h"
Johann23ebc872018-05-15 12:05:49 -070039 "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics.h"
40 "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics_c.h"
41 "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics.h"
42 "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics_c.h"
43 "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics.h"
44 "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics_c.h"
45 "${AOM_ROOT}/aom_dsp/subtract.c"
46 "${AOM_ROOT}/aom_dsp/txfm_common.h"
Yue Chen7cae98f2018-08-24 10:43:16 -070047 "${AOM_ROOT}/aom_dsp/x86/convolve_common_intrin.h"
48 "${AOM_ROOT}/aom_dsp/avg.c")
Tom Finegan85ac13e2017-02-22 15:09:20 -080049
Tom Finegan744cdc02018-05-14 09:31:38 -070050list(APPEND AOM_DSP_COMMON_ASM_SSE2
Johann23ebc872018-05-15 12:05:49 -070051 "${AOM_ROOT}/aom_dsp/x86/aom_convolve_copy_sse2.asm"
52 "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_8t_sse2.asm"
53 "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_bilinear_sse2.asm"
54 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_sse2.asm"
55 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_sse2.asm"
56 "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_sse2.asm"
57 "${AOM_ROOT}/aom_dsp/x86/intrapred_sse2.asm"
58 "${AOM_ROOT}/aom_dsp/x86/inv_wht_sse2.asm")
Tom Finegan85ac13e2017-02-22 15:09:20 -080059
Tom Finegan744cdc02018-05-14 09:31:38 -070060list(APPEND AOM_DSP_COMMON_INTRIN_SSE2
Sachin Kumar Gargc199fb42018-09-24 10:25:07 +053061 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_sse2.c"
Johann23ebc872018-05-15 12:05:49 -070062 "${AOM_ROOT}/aom_dsp/x86/aom_asm_stubs.c"
63 "${AOM_ROOT}/aom_dsp/x86/convolve.h"
64 "${AOM_ROOT}/aom_dsp/x86/convolve_sse2.h"
Neil Birkbeck04721792018-06-12 08:03:48 -070065 "${AOM_ROOT}/aom_dsp/x86/fft_sse2.c"
Sachin Kumar Garg3a0667d2018-10-09 16:03:10 +053066 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_sse2.c"
Johann23ebc872018-05-15 12:05:49 -070067 "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_sse2.c"
68 "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_sse2.c"
69 "${AOM_ROOT}/aom_dsp/x86/intrapred_sse2.c"
70 "${AOM_ROOT}/aom_dsp/x86/loopfilter_sse2.c"
71 "${AOM_ROOT}/aom_dsp/x86/lpf_common_sse2.h"
72 "${AOM_ROOT}/aom_dsp/x86/mem_sse2.h"
73 "${AOM_ROOT}/aom_dsp/x86/transpose_sse2.h"
Satish Kumar Suman95c38b22018-09-05 10:21:03 +053074 "${AOM_ROOT}/aom_dsp/x86/txfm_common_sse2.h"
Yue Chen7cae98f2018-08-24 10:43:16 -070075 "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.h"
76 "${AOM_ROOT}/aom_dsp/x86/avg_intrin_sse2.c"
77 "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_sse2.h")
Tom Finegan85ac13e2017-02-22 15:09:20 -080078
Tom Finegan744cdc02018-05-14 09:31:38 -070079list(APPEND AOM_DSP_COMMON_ASM_SSSE3
Johann23ebc872018-05-15 12:05:49 -070080 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_ssse3.asm"
81 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_ssse3.asm")
Tom Finegan85ac13e2017-02-22 15:09:20 -080082
Tom Finegan744cdc02018-05-14 09:31:38 -070083list(APPEND AOM_DSP_COMMON_INTRIN_SSSE3
Johann23ebc872018-05-15 12:05:49 -070084 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_ssse3.c"
85 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_ssse3.c"
86 "${AOM_ROOT}/aom_dsp/x86/intrapred_ssse3.c")
Tom Finegan2ca19f92017-11-09 10:44:46 -080087
Tom Finegan744cdc02018-05-14 09:31:38 -070088list(APPEND AOM_DSP_COMMON_INTRIN_SSE4_1
Xing Jin0a165c42018-07-18 17:53:37 +080089 "${AOM_ROOT}/aom_dsp/x86/blend_mask_sse4.h"
Johann23ebc872018-05-15 12:05:49 -070090 "${AOM_ROOT}/aom_dsp/x86/blend_a64_hmask_sse4.c"
91 "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_sse4.c"
92 "${AOM_ROOT}/aom_dsp/x86/blend_a64_vmask_sse4.c")
Tom Finegan85ac13e2017-02-22 15:09:20 -080093
Tom Finegan744cdc02018-05-14 09:31:38 -070094list(APPEND AOM_DSP_COMMON_INTRIN_AVX2
Johann23ebc872018-05-15 12:05:49 -070095 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_avx2.c"
96 "${AOM_ROOT}/aom_dsp/x86/common_avx2.h"
Xing Jin354773c2018-06-27 11:18:46 +080097 "${AOM_ROOT}/aom_dsp/x86/txfm_common_avx2.h"
Johann23ebc872018-05-15 12:05:49 -070098 "${AOM_ROOT}/aom_dsp/x86/convolve_avx2.h"
Neil Birkbeck04721792018-06-12 08:03:48 -070099 "${AOM_ROOT}/aom_dsp/x86/fft_avx2.c"
Johann23ebc872018-05-15 12:05:49 -0700100 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_avx2.c"
101 "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_avx2.c"
Xing Jin0a165c42018-07-18 17:53:37 +0800102 "${AOM_ROOT}/aom_dsp/x86/intrapred_avx2.c"
Yue Chen7cae98f2018-08-24 10:43:16 -0700103 "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_avx2.c"
104 "${AOM_ROOT}/aom_dsp/x86/avg_intrin_avx2.c"
105 "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_avx2.h")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800106
David Michael Barre48cda92018-06-07 18:34:48 +0900107list(APPEND AOM_DSP_COMMON_INTRIN_NEON
Johann23ebc872018-05-15 12:05:49 -0700108 "${AOM_ROOT}/aom_dsp/arm/fwd_txfm_neon.c"
Cherma Rajan A271c6c42018-06-07 19:24:51 +0530109 "${AOM_ROOT}/aom_dsp/arm/loopfilter_neon.c"
Johann23ebc872018-05-15 12:05:49 -0700110 "${AOM_ROOT}/aom_dsp/arm/intrapred_neon.c"
Remya0ba3c472018-06-07 00:40:34 +0530111 "${AOM_ROOT}/aom_dsp/arm/subtract_neon.c"
112 "${AOM_ROOT}/aom_dsp/arm/blend_a64_mask_neon.c")
Tom Finegan97d29ea2017-03-16 18:34:17 -0700113
Tom Finegan744cdc02018-05-14 09:31:38 -0700114list(APPEND AOM_DSP_COMMON_INTRIN_DSPR2
Johann23ebc872018-05-15 12:05:49 -0700115 "${AOM_ROOT}/aom_dsp/mips/common_dspr2.c"
116 "${AOM_ROOT}/aom_dsp/mips/common_dspr2.h"
117 "${AOM_ROOT}/aom_dsp/mips/convolve2_dspr2.c"
118 "${AOM_ROOT}/aom_dsp/mips/convolve2_horiz_dspr2.c"
119 "${AOM_ROOT}/aom_dsp/mips/convolve2_vert_dspr2.c"
120 "${AOM_ROOT}/aom_dsp/mips/convolve8_dspr2.c"
121 "${AOM_ROOT}/aom_dsp/mips/convolve8_horiz_dspr2.c"
122 "${AOM_ROOT}/aom_dsp/mips/convolve8_vert_dspr2.c"
123 "${AOM_ROOT}/aom_dsp/mips/convolve_common_dspr2.h"
124 "${AOM_ROOT}/aom_dsp/mips/intrapred16_dspr2.c"
125 "${AOM_ROOT}/aom_dsp/mips/intrapred4_dspr2.c"
126 "${AOM_ROOT}/aom_dsp/mips/intrapred8_dspr2.c"
127 "${AOM_ROOT}/aom_dsp/mips/inv_txfm_dspr2.h")
Yi Luoea8a0d52017-08-30 16:26:40 -0700128
Tom Finegan744cdc02018-05-14 09:31:38 -0700129list(APPEND AOM_DSP_COMMON_INTRIN_MSA
Johann23ebc872018-05-15 12:05:49 -0700130 "${AOM_ROOT}/aom_dsp/mips/aom_convolve8_horiz_msa.c"
131 "${AOM_ROOT}/aom_dsp/mips/aom_convolve8_vert_msa.c"
132 "${AOM_ROOT}/aom_dsp/mips/aom_convolve_copy_msa.c"
133 "${AOM_ROOT}/aom_dsp/mips/aom_convolve_msa.h"
134 "${AOM_ROOT}/aom_dsp/mips/intrapred_msa.c"
135 "${AOM_ROOT}/aom_dsp/mips/macros_msa.h")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800136
Johann589bae82018-04-27 10:57:44 -0700137if(CONFIG_AV1_DECODER)
Tom Finegan744cdc02018-05-14 09:31:38 -0700138 list(APPEND AOM_DSP_DECODER_SOURCES
Johann23ebc872018-05-15 12:05:49 -0700139 "${AOM_ROOT}/aom_dsp/binary_codes_reader.c"
140 "${AOM_ROOT}/aom_dsp/binary_codes_reader.h"
141 "${AOM_ROOT}/aom_dsp/bitreader.h"
Johann23ebc872018-05-15 12:05:49 -0700142 "${AOM_ROOT}/aom_dsp/daalaboolreader.c"
143 "${AOM_ROOT}/aom_dsp/daalaboolreader.h"
Tom Finegan0d91c102018-08-24 21:19:40 -0700144 "${AOM_ROOT}/aom_dsp/entdec.c" "${AOM_ROOT}/aom_dsp/entdec.h"
Johann23ebc872018-05-15 12:05:49 -0700145 "${AOM_ROOT}/aom_dsp/grain_synthesis.c"
146 "${AOM_ROOT}/aom_dsp/grain_synthesis.h")
Johann589bae82018-04-27 10:57:44 -0700147endif()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800148
Johann589bae82018-04-27 10:57:44 -0700149if(CONFIG_AV1_ENCODER)
Tom Finegan744cdc02018-05-14 09:31:38 -0700150 list(APPEND AOM_DSP_ENCODER_SOURCES
Johann23ebc872018-05-15 12:05:49 -0700151 "${AOM_ROOT}/aom_dsp/binary_codes_writer.c"
152 "${AOM_ROOT}/aom_dsp/binary_codes_writer.h"
153 "${AOM_ROOT}/aom_dsp/bitwriter.h"
Johann23ebc872018-05-15 12:05:49 -0700154 "${AOM_ROOT}/aom_dsp/daalaboolwriter.c"
155 "${AOM_ROOT}/aom_dsp/daalaboolwriter.h"
156 "${AOM_ROOT}/aom_dsp/entenc.c"
157 "${AOM_ROOT}/aom_dsp/entenc.h"
158 "${AOM_ROOT}/aom_dsp/fwd_txfm.c"
159 "${AOM_ROOT}/aom_dsp/grain_table.c"
160 "${AOM_ROOT}/aom_dsp/grain_table.h"
161 "${AOM_ROOT}/aom_dsp/noise_model.c"
162 "${AOM_ROOT}/aom_dsp/noise_model.h"
163 "${AOM_ROOT}/aom_dsp/noise_util.c"
164 "${AOM_ROOT}/aom_dsp/noise_util.h"
165 "${AOM_ROOT}/aom_dsp/psnr.c"
166 "${AOM_ROOT}/aom_dsp/psnr.h"
167 "${AOM_ROOT}/aom_dsp/quantize.c"
168 "${AOM_ROOT}/aom_dsp/quantize.h"
169 "${AOM_ROOT}/aom_dsp/sad.c"
Xing Jinfcb97b62018-08-28 17:38:36 +0800170 "${AOM_ROOT}/aom_dsp/sse.c"
Johann23ebc872018-05-15 12:05:49 -0700171 "${AOM_ROOT}/aom_dsp/sad_av1.c"
172 "${AOM_ROOT}/aom_dsp/sum_squares.c"
173 "${AOM_ROOT}/aom_dsp/variance.c"
174 "${AOM_ROOT}/aom_dsp/variance.h")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800175
Tom Finegan744cdc02018-05-14 09:31:38 -0700176 list(APPEND AOM_DSP_ENCODER_ASM_SSE2
Johann23ebc872018-05-15 12:05:49 -0700177 "${AOM_ROOT}/aom_dsp/x86/highbd_sad4d_sse2.asm"
178 "${AOM_ROOT}/aom_dsp/x86/highbd_sad_sse2.asm"
179 "${AOM_ROOT}/aom_dsp/x86/highbd_subpel_variance_impl_sse2.asm"
180 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_impl_sse2.asm"
181 "${AOM_ROOT}/aom_dsp/x86/sad4d_sse2.asm"
182 "${AOM_ROOT}/aom_dsp/x86/sad_sse2.asm"
183 "${AOM_ROOT}/aom_dsp/x86/subpel_variance_sse2.asm"
184 "${AOM_ROOT}/aom_dsp/x86/subtract_sse2.asm")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800185
Johann35171102018-10-31 15:56:00 -0700186 list(APPEND AOM_DSP_ENCODER_ASM_SSE2_X86_64
187 "${AOM_ROOT}/aom_dsp/x86/ssim_sse2_x86_64.asm")
188
Tom Finegan744cdc02018-05-14 09:31:38 -0700189 list(APPEND AOM_DSP_ENCODER_INTRIN_SSE2
Johann23ebc872018-05-15 12:05:49 -0700190 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_impl_sse2.h"
191 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.c"
192 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.h"
Johann23ebc872018-05-15 12:05:49 -0700193 "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c"
194 "${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c"
195 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse2.c"
196 "${AOM_ROOT}/aom_dsp/x86/quantize_sse2.c"
Johann44a445c2018-09-13 13:45:44 -0700197 "${AOM_ROOT}/aom_dsp/x86/quantize_x86.h"
Johann23ebc872018-05-15 12:05:49 -0700198 "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.c"
199 "${AOM_ROOT}/aom_dsp/x86/variance_sse2.c")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800200
Tom Finegan744cdc02018-05-14 09:31:38 -0700201 list(APPEND AOM_DSP_ENCODER_ASM_SSSE3_X86_64
Johann23ebc872018-05-15 12:05:49 -0700202 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_ssse3_x86_64.asm"
Johann35171102018-10-31 15:56:00 -0700203 "${AOM_ROOT}/aom_dsp/x86/quantize_ssse3_x86_64.asm")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800204
Tom Finegan744cdc02018-05-14 09:31:38 -0700205 list(APPEND AOM_DSP_ENCODER_INTRIN_AVX2
Xing Jin45811bc2018-07-10 17:38:16 +0800206 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_avx2.c"
Xing Jin980af3a2018-07-11 13:49:13 +0800207 "${AOM_ROOT}/aom_dsp/x86/subtract_avx2.c"
Johann23ebc872018-05-15 12:05:49 -0700208 "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_avx2.c"
209 "${AOM_ROOT}/aom_dsp/x86/sad4d_avx2.c"
210 "${AOM_ROOT}/aom_dsp/x86/sad_avx2.c"
211 "${AOM_ROOT}/aom_dsp/x86/sad_highbd_avx2.c"
212 "${AOM_ROOT}/aom_dsp/x86/sad_impl_avx2.c"
213 "${AOM_ROOT}/aom_dsp/x86/variance_avx2.c"
Sachin Kumar Gargf2b7da02018-09-06 17:40:49 +0530214 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_avx2.c"
Xing Jinfcb97b62018-08-28 17:38:36 +0800215 "${AOM_ROOT}/aom_dsp/x86/sse_avx2.c"
Xing Jin6eecfe92018-07-09 14:54:38 +0800216 "${AOM_ROOT}/aom_dsp/x86/variance_impl_avx2.c"
Venkatf9213442018-08-03 17:39:58 +0530217 "${AOM_ROOT}/aom_dsp/x86/obmc_sad_avx2.c"
Satish Kumar Suman95c38b22018-09-05 10:21:03 +0530218 "${AOM_ROOT}/aom_dsp/x86/obmc_variance_avx2.c"
219 "${AOM_ROOT}/aom_dsp/x86/sum_squares_avx2.c")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800220
Tom Finegan744cdc02018-05-14 09:31:38 -0700221 list(APPEND AOM_DSP_ENCODER_AVX_ASM_X86_64
Johann23ebc872018-05-15 12:05:49 -0700222 "${AOM_ROOT}/aom_dsp/x86/quantize_avx_x86_64.asm")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800223
Tom Finegan744cdc02018-05-14 09:31:38 -0700224 list(APPEND AOM_DSP_ENCODER_INTRIN_SSSE3
Xing Jin45811bc2018-07-10 17:38:16 +0800225 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.h"
Johann23ebc872018-05-15 12:05:49 -0700226 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.c"
227 "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.h"
228 "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.c"
Kyle Siefring6042d902018-06-12 00:33:17 -0400229 "${AOM_ROOT}/aom_dsp/x86/variance_impl_ssse3.c"
Johann23ebc872018-05-15 12:05:49 -0700230 "${AOM_ROOT}/aom_dsp/x86/jnt_variance_ssse3.c"
231 "${AOM_ROOT}/aom_dsp/x86/jnt_sad_ssse3.c")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800232
Tom Finegan744cdc02018-05-14 09:31:38 -0700233 list(APPEND AOM_DSP_ENCODER_INTRIN_SSE4_1
Johann23ebc872018-05-15 12:05:49 -0700234 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse4.c"
Xing Jinfcb97b62018-08-28 17:38:36 +0800235 "${AOM_ROOT}/aom_dsp/x86/sse_sse4.c"
Johann23ebc872018-05-15 12:05:49 -0700236 "${AOM_ROOT}/aom_dsp/x86/obmc_sad_sse4.c"
237 "${AOM_ROOT}/aom_dsp/x86/obmc_variance_sse4.c")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800238
Tom Finegan744cdc02018-05-14 09:31:38 -0700239 list(APPEND AOM_DSP_ENCODER_INTRIN_NEON
Johann23ebc872018-05-15 12:05:49 -0700240 "${AOM_ROOT}/aom_dsp/arm/sad4d_neon.c"
241 "${AOM_ROOT}/aom_dsp/arm/sad_neon.c"
242 "${AOM_ROOT}/aom_dsp/arm/subpel_variance_neon.c"
243 "${AOM_ROOT}/aom_dsp/arm/variance_neon.c")
Tom Finegand148c962017-04-04 14:48:26 -0700244
Tom Finegan744cdc02018-05-14 09:31:38 -0700245 list(APPEND AOM_DSP_ENCODER_INTRIN_MSA "${AOM_ROOT}/aom_dsp/mips/sad_msa.c"
Johann23ebc872018-05-15 12:05:49 -0700246 "${AOM_ROOT}/aom_dsp/mips/subtract_msa.c"
247 "${AOM_ROOT}/aom_dsp/mips/variance_msa.c"
248 "${AOM_ROOT}/aom_dsp/mips/sub_pixel_variance_msa.c")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800249
Johann589bae82018-04-27 10:57:44 -0700250 if(CONFIG_INTERNAL_STATS)
Johann23ebc872018-05-15 12:05:49 -0700251 list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/fastssim.c"
252 "${AOM_ROOT}/aom_dsp/psnrhvs.c" "${AOM_ROOT}/aom_dsp/ssim.c"
253 "${AOM_ROOT}/aom_dsp/ssim.h")
Johann589bae82018-04-27 10:57:44 -0700254 endif()
255endif()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800256
Tom Finegan85ac13e2017-02-22 15:09:20 -0800257# Creates aom_dsp build targets. Must not be called until after libaom target
258# has been created.
Johann589bae82018-04-27 10:57:44 -0700259function(setup_aom_dsp_targets)
Tom Finegan85ac13e2017-02-22 15:09:20 -0800260 add_library(aom_dsp_common OBJECT ${AOM_DSP_COMMON_SOURCES})
Tom Finegan84f2d792017-06-15 23:06:44 -0700261 list(APPEND AOM_LIB_TARGETS aom_dsp_common)
Tom Finegan78516fc2017-06-20 10:46:26 -0700262 create_dummy_source_file("aom_av1" "c" "dummy_source_file")
263 add_library(aom_dsp OBJECT "${dummy_source_file}")
264 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_common>)
Tom Finegan84f2d792017-06-15 23:06:44 -0700265 list(APPEND AOM_LIB_TARGETS aom_dsp)
266
267 # Not all generators support libraries consisting only of object files. Add a
268 # dummy source file to the aom_dsp target.
269 add_dummy_source_file_to_target("aom_dsp" "c")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800270
Johann589bae82018-04-27 10:57:44 -0700271 if(CONFIG_AV1_DECODER)
Tom Finegan85ac13e2017-02-22 15:09:20 -0800272 add_library(aom_dsp_decoder OBJECT ${AOM_DSP_DECODER_SOURCES})
Tom Finegan744cdc02018-05-14 09:31:38 -0700273 list(APPEND AOM_LIB_TARGETS aom_dsp_decoder)
Tom Finegan78516fc2017-06-20 10:46:26 -0700274 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_decoder>)
Johann589bae82018-04-27 10:57:44 -0700275 endif()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800276
Johann589bae82018-04-27 10:57:44 -0700277 if(CONFIG_AV1_ENCODER)
Tom Finegan85ac13e2017-02-22 15:09:20 -0800278 add_library(aom_dsp_encoder OBJECT ${AOM_DSP_ENCODER_SOURCES})
Tom Finegan744cdc02018-05-14 09:31:38 -0700279 list(APPEND AOM_LIB_TARGETS aom_dsp_encoder)
Tom Finegan78516fc2017-06-20 10:46:26 -0700280 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_encoder>)
Johann589bae82018-04-27 10:57:44 -0700281 endif()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800282
Johann589bae82018-04-27 10:57:44 -0700283 if(HAVE_SSE2)
Tom Finegan78516fc2017-06-20 10:46:26 -0700284 add_asm_library("aom_dsp_common_sse2" "AOM_DSP_COMMON_ASM_SSE2" "aom")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800285 add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_common"
Johann589bae82018-04-27 10:57:44 -0700286 "AOM_DSP_COMMON_INTRIN_SSE2" "aom")
Tom Finegan84f2d792017-06-15 23:06:44 -0700287
Johann589bae82018-04-27 10:57:44 -0700288 if(CONFIG_AV1_ENCODER)
Johann35171102018-10-31 15:56:00 -0700289 if("${AOM_TARGET_CPU}" STREQUAL "x86_64")
290 list(APPEND AOM_DSP_ENCODER_ASM_SSE2 ${AOM_DSP_ENCODER_ASM_SSE2_X86_64})
291 endif()
Johann589bae82018-04-27 10:57:44 -0700292 add_asm_library("aom_dsp_encoder_sse2" "AOM_DSP_ENCODER_ASM_SSE2" "aom")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800293 add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_encoder"
Tom Finegan78516fc2017-06-20 10:46:26 -0700294 "AOM_DSP_ENCODER_INTRIN_SSE2" "aom")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800295 endif()
Johann589bae82018-04-27 10:57:44 -0700296 endif()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800297
Johann589bae82018-04-27 10:57:44 -0700298 if(HAVE_SSSE3)
Tom Finegan78516fc2017-06-20 10:46:26 -0700299 add_asm_library("aom_dsp_common_ssse3" "AOM_DSP_COMMON_ASM_SSSE3" "aom")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800300 add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_common"
Tom Finegan78516fc2017-06-20 10:46:26 -0700301 "AOM_DSP_COMMON_INTRIN_SSSE3" "aom")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800302
Johann589bae82018-04-27 10:57:44 -0700303 if(CONFIG_AV1_ENCODER)
304 if("${AOM_TARGET_CPU}" STREQUAL "x86_64")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800305 list(APPEND AOM_DSP_ENCODER_ASM_SSSE3
Johann589bae82018-04-27 10:57:44 -0700306 ${AOM_DSP_ENCODER_ASM_SSSE3_X86_64})
307 endif()
Tom Finegan78516fc2017-06-20 10:46:26 -0700308 add_asm_library("aom_dsp_encoder_ssse3" "AOM_DSP_ENCODER_ASM_SSSE3" "aom")
James Zernb363b232018-05-16 16:53:27 -0700309 add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_encoder"
310 "AOM_DSP_ENCODER_INTRIN_SSSE3" "aom")
Johann589bae82018-04-27 10:57:44 -0700311 endif()
312 endif()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800313
Johann589bae82018-04-27 10:57:44 -0700314 if(HAVE_SSE4_1)
Tom Finegan85ac13e2017-02-22 15:09:20 -0800315 add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_common"
Tom Finegan78516fc2017-06-20 10:46:26 -0700316 "AOM_DSP_COMMON_INTRIN_SSE4_1" "aom")
Johann589bae82018-04-27 10:57:44 -0700317 if(CONFIG_AV1_ENCODER)
James Zernb363b232018-05-16 16:53:27 -0700318 add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_encoder"
319 "AOM_DSP_ENCODER_INTRIN_SSE4_1" "aom")
Johann589bae82018-04-27 10:57:44 -0700320 endif()
321 endif()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800322
Johann589bae82018-04-27 10:57:44 -0700323 if(HAVE_AVX AND "${AOM_TARGET_CPU}" STREQUAL "x86_64")
324 if(CONFIG_AV1_ENCODER)
Tom Fineganba02c242017-05-16 15:01:54 -0700325 add_asm_library("aom_dsp_encoder_avx" "AOM_DSP_ENCODER_AVX_ASM_X86_64"
Tom Finegan78516fc2017-06-20 10:46:26 -0700326 "aom")
Johann589bae82018-04-27 10:57:44 -0700327 endif()
328 endif()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800329
Johann589bae82018-04-27 10:57:44 -0700330 if(HAVE_AVX2)
Tom Finegan85ac13e2017-02-22 15:09:20 -0800331 add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_common"
Tom Finegan78516fc2017-06-20 10:46:26 -0700332 "AOM_DSP_COMMON_INTRIN_AVX2" "aom")
Johann589bae82018-04-27 10:57:44 -0700333 if(CONFIG_AV1_ENCODER)
Tom Finegan85ac13e2017-02-22 15:09:20 -0800334 add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_encoder"
Tom Finegan78516fc2017-06-20 10:46:26 -0700335 "AOM_DSP_ENCODER_INTRIN_AVX2" "aom")
Johann589bae82018-04-27 10:57:44 -0700336 endif()
337 endif()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800338
Johann589bae82018-04-27 10:57:44 -0700339 if(HAVE_NEON)
Tom Finegan97d29ea2017-03-16 18:34:17 -0700340 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
Tom Finegan84f2d792017-06-15 23:06:44 -0700341 "aom_dsp_common" "AOM_DSP_COMMON_INTRIN_NEON"
Tom Finegan78516fc2017-06-20 10:46:26 -0700342 "aom")
Johann589bae82018-04-27 10:57:44 -0700343 if(CONFIG_AV1_ENCODER)
David Barker87430ba2018-02-08 16:50:53 +0000344 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
Johann589bae82018-04-27 10:57:44 -0700345 "aom_dsp_encoder"
346 "AOM_DSP_ENCODER_INTRIN_NEON" "aom")
347 endif()
348 endif()
Tom Finegand148c962017-04-04 14:48:26 -0700349
Johann589bae82018-04-27 10:57:44 -0700350 if(HAVE_DSPR2)
Tom Finegand148c962017-04-04 14:48:26 -0700351 add_intrinsics_object_library("" "dspr2" "aom_dsp_common"
Tom Finegan78516fc2017-06-20 10:46:26 -0700352 "AOM_DSP_COMMON_INTRIN_DSPR2" "aom")
Johann589bae82018-04-27 10:57:44 -0700353 endif()
Tom Finegand148c962017-04-04 14:48:26 -0700354
Johann589bae82018-04-27 10:57:44 -0700355 if(HAVE_MSA)
Tom Finegand148c962017-04-04 14:48:26 -0700356 add_intrinsics_object_library("" "msa" "aom_dsp_common"
Tom Finegan78516fc2017-06-20 10:46:26 -0700357 "AOM_DSP_COMMON_INTRIN_MSA" "aom")
Johann589bae82018-04-27 10:57:44 -0700358 if(CONFIG_AV1_ENCODER)
Tom Finegand148c962017-04-04 14:48:26 -0700359 add_intrinsics_object_library("" "msa" "aom_dsp_encoder"
Tom Finegan78516fc2017-06-20 10:46:26 -0700360 "AOM_DSP_ENCODER_INTRIN_MSA" "aom")
Johann589bae82018-04-27 10:57:44 -0700361 endif()
362 endif()
Tom Finegand148c962017-04-04 14:48:26 -0700363
Tom Finegan85ac13e2017-02-22 15:09:20 -0800364 # Pass the new lib targets up to the parent scope instance of
365 # $AOM_LIB_TARGETS.
366 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)
Johann589bae82018-04-27 10:57:44 -0700367endfunction()