tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

aom_dsp.cmake (24509B)


      1 #
      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 #
     11 if(AOM_AOM_DSP_AOM_DSP_CMAKE_)
     12  return()
     13 endif() # AOM_AOM_DSP_AOM_DSP_CMAKE_
     14 set(AOM_AOM_DSP_AOM_DSP_CMAKE_ 1)
     15 
     16 list(APPEND AOM_DSP_COMMON_SOURCES
     17            "${AOM_ROOT}/aom_dsp/aom_convolve.c"
     18            "${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"
     22            "${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"
     26            "${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"
     32            "${AOM_ROOT}/aom_dsp/grain_params.h"
     33            "${AOM_ROOT}/aom_dsp/intrapred.c"
     34            "${AOM_ROOT}/aom_dsp/intrapred_common.h"
     35            "${AOM_ROOT}/aom_dsp/loopfilter.c"
     36            "${AOM_ROOT}/aom_dsp/odintrin.c"
     37            "${AOM_ROOT}/aom_dsp/odintrin.h"
     38            "${AOM_ROOT}/aom_dsp/prob.h"
     39            "${AOM_ROOT}/aom_dsp/recenter.h"
     40            "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics.h"
     41            "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics_c.h"
     42            "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics.h"
     43            "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics_c.h"
     44            "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics.h"
     45            "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics_c.h"
     46            "${AOM_ROOT}/aom_dsp/txfm_common.h"
     47            "${AOM_ROOT}/aom_dsp/x86/convolve_common_intrin.h")
     48 
     49 list(APPEND AOM_DSP_COMMON_ASM_SSE2
     50            "${AOM_ROOT}/aom_dsp/x86/intrapred_asm_sse2.asm")
     51 if(CONFIG_AV1_HIGHBITDEPTH)
     52  list(APPEND AOM_DSP_COMMON_ASM_SSE2
     53              "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_8t_sse2.asm"
     54              "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_bilinear_sse2.asm"
     55              "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_asm_sse2.asm")
     56 endif()
     57 
     58 list(APPEND AOM_DSP_COMMON_INTRIN_SSE2
     59            "${AOM_ROOT}/aom_dsp/x86/aom_convolve_copy_sse2.c"
     60            "${AOM_ROOT}/aom_dsp/x86/convolve.h"
     61            "${AOM_ROOT}/aom_dsp/x86/convolve_sse2.h"
     62            "${AOM_ROOT}/aom_dsp/x86/intrapred_sse2.c"
     63            "${AOM_ROOT}/aom_dsp/x86/intrapred_x86.h"
     64            "${AOM_ROOT}/aom_dsp/x86/loopfilter_sse2.c"
     65            "${AOM_ROOT}/aom_dsp/x86/lpf_common_sse2.h"
     66            "${AOM_ROOT}/aom_dsp/x86/mem_sse2.h"
     67            "${AOM_ROOT}/aom_dsp/x86/transpose_sse2.h"
     68            "${AOM_ROOT}/aom_dsp/x86/txfm_common_sse2.h"
     69            "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.h"
     70            "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_sse2.h")
     71 
     72 list(APPEND AOM_DSP_COMMON_ASM_SSSE3
     73            "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_ssse3.asm"
     74            "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_ssse3.asm")
     75 
     76 list(APPEND AOM_DSP_COMMON_INTRIN_SSSE3
     77            "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_ssse3.c"
     78            "${AOM_ROOT}/aom_dsp/x86/convolve_ssse3.h"
     79            "${AOM_ROOT}/aom_dsp/x86/intrapred_ssse3.c")
     80 
     81 list(APPEND AOM_DSP_COMMON_INTRIN_SSE4_1
     82            "${AOM_ROOT}/aom_dsp/x86/blend_mask_sse4.h"
     83            "${AOM_ROOT}/aom_dsp/x86/blend_a64_hmask_sse4.c"
     84            "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_sse4.c"
     85            "${AOM_ROOT}/aom_dsp/x86/blend_a64_vmask_sse4.c"
     86            "${AOM_ROOT}/aom_dsp/x86/intrapred_sse4.c"
     87            "${AOM_ROOT}/aom_dsp/x86/intrapred_utils.h")
     88 
     89 list(APPEND AOM_DSP_COMMON_INTRIN_AVX2
     90            "${AOM_ROOT}/aom_dsp/x86/aom_convolve_copy_avx2.c"
     91            "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_avx2.c"
     92            "${AOM_ROOT}/aom_dsp/x86/common_avx2.h"
     93            "${AOM_ROOT}/aom_dsp/x86/txfm_common_avx2.h"
     94            "${AOM_ROOT}/aom_dsp/x86/convolve_avx2.h"
     95            "${AOM_ROOT}/aom_dsp/x86/intrapred_avx2.c"
     96            "${AOM_ROOT}/aom_dsp/x86/loopfilter_avx2.c"
     97            "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_avx2.c"
     98            "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_avx2.h")
     99 
    100 if(CONFIG_SVT_AV1)
    101  list(APPEND AOM_DSP_COMMON_INTRIN_AVX2
    102              "${AOM_ROOT}/third_party/SVT-AV1/convolve_2d_avx2.h"
    103              "${AOM_ROOT}/third_party/SVT-AV1/convolve_avx2.h"
    104              "${AOM_ROOT}/third_party/SVT-AV1/EbMemory_AVX2.h"
    105              "${AOM_ROOT}/third_party/SVT-AV1/EbMemory_SSE4_1.h"
    106              "${AOM_ROOT}/third_party/SVT-AV1/synonyms.h")
    107 endif()
    108 
    109 list(APPEND AOM_DSP_COMMON_INTRIN_NEON
    110            "${AOM_ROOT}/aom_dsp/arm/aom_convolve_copy_neon.c"
    111            "${AOM_ROOT}/aom_dsp/arm/aom_convolve8_neon.c"
    112            "${AOM_ROOT}/aom_dsp/arm/aom_scaled_convolve8_neon.c"
    113            "${AOM_ROOT}/aom_dsp/arm/loopfilter_neon.c"
    114            "${AOM_ROOT}/aom_dsp/arm/intrapred_neon.c"
    115            "${AOM_ROOT}/aom_dsp/arm/blend_a64_mask_neon.c")
    116 
    117 list(APPEND AOM_DSP_COMMON_INTRIN_NEON_DOTPROD
    118            "${AOM_ROOT}/aom_dsp/arm/aom_convolve8_neon_dotprod.c"
    119            "${AOM_ROOT}/aom_dsp/arm/aom_scaled_convolve8_neon_dotprod.c")
    120 
    121 list(APPEND AOM_DSP_COMMON_INTRIN_NEON_I8MM
    122            "${AOM_ROOT}/aom_dsp/arm/aom_convolve8_neon_i8mm.c"
    123            "${AOM_ROOT}/aom_dsp/arm/aom_scaled_convolve8_neon_i8mm.c")
    124 
    125 if(CONFIG_AV1_HIGHBITDEPTH)
    126  list(APPEND AOM_DSP_COMMON_INTRIN_SSE2
    127              "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_sse2.c"
    128              "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_sse2.c"
    129              "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_sse2.c")
    130 
    131  list(APPEND AOM_DSP_COMMON_INTRIN_SSSE3
    132              "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_ssse3.c")
    133 
    134  list(APPEND AOM_DSP_COMMON_INTRIN_AVX2
    135              "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_avx2.c"
    136              "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_avx2.c")
    137 
    138  list(APPEND AOM_DSP_COMMON_INTRIN_NEON
    139              "${AOM_ROOT}/aom_dsp/arm/highbd_blend_a64_hmask_neon.c"
    140              "${AOM_ROOT}/aom_dsp/arm/highbd_blend_a64_mask_neon.c"
    141              "${AOM_ROOT}/aom_dsp/arm/highbd_blend_a64_vmask_neon.c"
    142              "${AOM_ROOT}/aom_dsp/arm/highbd_convolve8_neon.c"
    143              "${AOM_ROOT}/aom_dsp/arm/highbd_intrapred_neon.c"
    144              "${AOM_ROOT}/aom_dsp/arm/highbd_loopfilter_neon.c")
    145 
    146  list(APPEND AOM_DSP_COMMON_INTRIN_SVE
    147              "${AOM_ROOT}/aom_dsp/arm/highbd_convolve8_sve.c")
    148 endif()
    149 
    150 if(CONFIG_AV1_DECODER)
    151  list(APPEND AOM_DSP_DECODER_SOURCES
    152              "${AOM_ROOT}/aom_dsp/binary_codes_reader.c"
    153              "${AOM_ROOT}/aom_dsp/binary_codes_reader.h"
    154              "${AOM_ROOT}/aom_dsp/bitreader.c"
    155              "${AOM_ROOT}/aom_dsp/bitreader.h" "${AOM_ROOT}/aom_dsp/entdec.c"
    156              "${AOM_ROOT}/aom_dsp/entdec.h")
    157 endif()
    158 
    159 if(CONFIG_AV1_ENCODER)
    160  list(APPEND AOM_DSP_ENCODER_SOURCES
    161              "${AOM_ROOT}/aom_dsp/avg.c"
    162              "${AOM_ROOT}/aom_dsp/bitwriter.c"
    163              "${AOM_ROOT}/aom_dsp/bitwriter.h"
    164              "${AOM_ROOT}/aom_dsp/blk_sse_sum.c"
    165              "${AOM_ROOT}/aom_dsp/entenc.c"
    166              "${AOM_ROOT}/aom_dsp/entenc.h"
    167              "${AOM_ROOT}/aom_dsp/fft.c"
    168              "${AOM_ROOT}/aom_dsp/fft_common.h"
    169              "${AOM_ROOT}/aom_dsp/fwd_txfm.c"
    170              "${AOM_ROOT}/aom_dsp/psnr.c"
    171              "${AOM_ROOT}/aom_dsp/psnr.h"
    172              "${AOM_ROOT}/aom_dsp/quantize.c"
    173              "${AOM_ROOT}/aom_dsp/quantize.h"
    174              "${AOM_ROOT}/aom_dsp/sad.c"
    175              "${AOM_ROOT}/aom_dsp/sad_av1.c"
    176              "${AOM_ROOT}/aom_dsp/subtract.c"
    177              "${AOM_ROOT}/aom_dsp/sse.c"
    178              "${AOM_ROOT}/aom_dsp/ssim.c"
    179              "${AOM_ROOT}/aom_dsp/ssim.h"
    180              "${AOM_ROOT}/aom_dsp/sum_squares.c"
    181              "${AOM_ROOT}/aom_dsp/variance.c"
    182              "${AOM_ROOT}/aom_dsp/variance.h")
    183 
    184  if(CONFIG_HIGHWAY)
    185    list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/reduce_sum_hwy.h"
    186                "${AOM_ROOT}/aom_dsp/sad_hwy.h")
    187  endif()
    188 
    189  # Flow estimation library and grain/noise table/model.
    190  if(NOT CONFIG_REALTIME_ONLY)
    191    list(APPEND AOM_DSP_ENCODER_SOURCES
    192                "${AOM_ROOT}/aom_dsp/pyramid.c"
    193                "${AOM_ROOT}/aom_dsp/binary_codes_writer.c"
    194                "${AOM_ROOT}/aom_dsp/binary_codes_writer.h"
    195                "${AOM_ROOT}/aom_dsp/flow_estimation/corner_detect.c"
    196                "${AOM_ROOT}/aom_dsp/flow_estimation/corner_match.c"
    197                "${AOM_ROOT}/aom_dsp/flow_estimation/disflow.c"
    198                "${AOM_ROOT}/aom_dsp/flow_estimation/flow_estimation.c"
    199                "${AOM_ROOT}/aom_dsp/grain_table.c"
    200                "${AOM_ROOT}/aom_dsp/grain_table.h"
    201                "${AOM_ROOT}/aom_dsp/noise_model.c"
    202                "${AOM_ROOT}/aom_dsp/noise_model.h"
    203                "${AOM_ROOT}/aom_dsp/noise_util.c"
    204                "${AOM_ROOT}/aom_dsp/noise_util.h"
    205                "${AOM_ROOT}/aom_dsp/flow_estimation/ransac.c")
    206 
    207    list(APPEND AOM_DSP_ENCODER_INTRIN_SSE4_1
    208                "${AOM_ROOT}/aom_dsp/flow_estimation/x86/corner_match_sse4.c"
    209                "${AOM_ROOT}/aom_dsp/flow_estimation/x86/disflow_sse4.c")
    210 
    211    list(APPEND AOM_DSP_ENCODER_INTRIN_AVX2
    212                "${AOM_ROOT}/aom_dsp/flow_estimation/x86/corner_match_avx2.c"
    213                "${AOM_ROOT}/aom_dsp/flow_estimation/x86/disflow_avx2.c")
    214 
    215    list(APPEND AOM_DSP_ENCODER_INTRIN_NEON
    216                "${AOM_ROOT}/aom_dsp/flow_estimation/arm/disflow_neon.c")
    217 
    218    list(APPEND AOM_DSP_ENCODER_INTRIN_SVE
    219                "${AOM_ROOT}/aom_dsp/flow_estimation/arm/disflow_sve.c")
    220  endif()
    221 
    222  list(APPEND AOM_DSP_ENCODER_ASM_SSE2 "${AOM_ROOT}/aom_dsp/x86/sad4d_sse2.asm"
    223              "${AOM_ROOT}/aom_dsp/x86/sad_sse2.asm"
    224              "${AOM_ROOT}/aom_dsp/x86/subtract_sse2.asm")
    225 
    226  list(APPEND AOM_DSP_ENCODER_ASM_SSE2_X86_64
    227              "${AOM_ROOT}/aom_dsp/x86/ssim_sse2_x86_64.asm")
    228 
    229  list(APPEND AOM_DSP_ENCODER_INTRIN_SSE2
    230              "${AOM_ROOT}/aom_dsp/x86/avg_intrin_sse2.c"
    231              "${AOM_ROOT}/aom_dsp/x86/fft_sse2.c"
    232              "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_impl_sse2.h"
    233              "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.c"
    234              "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.h"
    235              "${AOM_ROOT}/aom_dsp/x86/quantize_sse2.c"
    236              "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_sse2.c"
    237              "${AOM_ROOT}/aom_dsp/x86/quantize_x86.h"
    238              "${AOM_ROOT}/aom_dsp/x86/blk_sse_sum_sse2.c"
    239              "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.c"
    240              "${AOM_ROOT}/aom_dsp/x86/variance_sse2.c")
    241 
    242  list(APPEND AOM_DSP_ENCODER_ASM_SSSE3
    243              "${AOM_ROOT}/aom_dsp/x86/subpel_variance_ssse3.asm")
    244 
    245  list(APPEND AOM_DSP_ENCODER_ASM_SSSE3_X86_64
    246              "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_ssse3_x86_64.asm"
    247              "${AOM_ROOT}/aom_dsp/x86/quantize_ssse3_x86_64.asm")
    248 
    249  list(APPEND AOM_DSP_ENCODER_INTRIN_AVX2
    250              "${AOM_ROOT}/aom_dsp/x86/avg_intrin_avx2.c"
    251              "${AOM_ROOT}/aom_dsp/x86/fft_avx2.c"
    252              "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_avx2.c"
    253              "${AOM_ROOT}/aom_dsp/x86/subtract_avx2.c"
    254              "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_avx2.c"
    255              "${AOM_ROOT}/aom_dsp/x86/quantize_avx2.c"
    256              "${AOM_ROOT}/aom_dsp/x86/sad4d_avx2.c"
    257              "${AOM_ROOT}/aom_dsp/x86/sad_avx2.c"
    258              "${AOM_ROOT}/aom_dsp/x86/sad_impl_avx2.c"
    259              "${AOM_ROOT}/aom_dsp/x86/variance_avx2.c"
    260              "${AOM_ROOT}/aom_dsp/x86/sse_avx2.c"
    261              "${AOM_ROOT}/aom_dsp/x86/variance_impl_avx2.c"
    262              "${AOM_ROOT}/aom_dsp/x86/obmc_sad_avx2.c"
    263              "${AOM_ROOT}/aom_dsp/x86/obmc_variance_avx2.c"
    264              "${AOM_ROOT}/aom_dsp/x86/blk_sse_sum_avx2.c"
    265              "${AOM_ROOT}/aom_dsp/x86/sum_squares_avx2.c")
    266 
    267  if(CONFIG_HIGHWAY)
    268    list(APPEND AOM_DSP_ENCODER_INTRIN_AVX2
    269                "${AOM_ROOT}/aom_dsp/x86/sad_hwy_avx2.cc")
    270    list(APPEND AOM_DSP_ENCODER_INTRIN_AVX512
    271                "${AOM_ROOT}/aom_dsp/x86/sad_hwy_avx512.cc")
    272    list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_AVX2
    273                     "${AOM_ROOT}/aom_dsp/x86/sad_impl_avx2.c")
    274  endif()
    275 
    276  list(APPEND AOM_DSP_ENCODER_INTRIN_AVX
    277              "${AOM_ROOT}/aom_dsp/x86/aom_quantize_avx.c")
    278 
    279  list(APPEND AOM_DSP_ENCODER_INTRIN_SSSE3
    280              "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.h"
    281              "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.c"
    282              "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.h"
    283              "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.c"
    284              "${AOM_ROOT}/aom_dsp/x86/quantize_ssse3.c"
    285              "${AOM_ROOT}/aom_dsp/x86/variance_impl_ssse3.c"
    286              "${AOM_ROOT}/aom_dsp/x86/variance_ssse3.c")
    287 
    288  list(APPEND AOM_DSP_ENCODER_INTRIN_SSE4_1
    289              "${AOM_ROOT}/aom_dsp/x86/avg_intrin_sse4.c"
    290              "${AOM_ROOT}/aom_dsp/x86/sse_sse4.c"
    291              "${AOM_ROOT}/aom_dsp/x86/obmc_sad_sse4.c"
    292              "${AOM_ROOT}/aom_dsp/x86/obmc_variance_sse4.c")
    293 
    294  list(APPEND AOM_DSP_ENCODER_INTRIN_NEON
    295              "${AOM_ROOT}/aom_dsp/arm/avg_pred_neon.c"
    296              "${AOM_ROOT}/aom_dsp/arm/fwd_txfm_neon.c"
    297              "${AOM_ROOT}/aom_dsp/arm/sadxd_neon.c"
    298              "${AOM_ROOT}/aom_dsp/arm/sad_neon.c"
    299              "${AOM_ROOT}/aom_dsp/arm/masked_sad_neon.c"
    300              "${AOM_ROOT}/aom_dsp/arm/subpel_variance_neon.c"
    301              "${AOM_ROOT}/aom_dsp/arm/variance_neon.c"
    302              "${AOM_ROOT}/aom_dsp/arm/hadamard_neon.c"
    303              "${AOM_ROOT}/aom_dsp/arm/avg_neon.c"
    304              "${AOM_ROOT}/aom_dsp/arm/obmc_variance_neon.c"
    305              "${AOM_ROOT}/aom_dsp/arm/obmc_sad_neon.c"
    306              "${AOM_ROOT}/aom_dsp/arm/sse_neon.c"
    307              "${AOM_ROOT}/aom_dsp/arm/subtract_neon.c"
    308              "${AOM_ROOT}/aom_dsp/arm/sum_squares_neon.c"
    309              "${AOM_ROOT}/aom_dsp/arm/blk_sse_sum_neon.c")
    310 
    311  list(APPEND AOM_DSP_ENCODER_INTRIN_NEON_DOTPROD
    312              "${AOM_ROOT}/aom_dsp/arm/sad_neon_dotprod.c"
    313              "${AOM_ROOT}/aom_dsp/arm/sadxd_neon_dotprod.c"
    314              "${AOM_ROOT}/aom_dsp/arm/sse_neon_dotprod.c"
    315              "${AOM_ROOT}/aom_dsp/arm/sum_squares_neon_dotprod.c"
    316              "${AOM_ROOT}/aom_dsp/arm/variance_neon_dotprod.c")
    317 
    318  list(APPEND AOM_DSP_ENCODER_INTRIN_SVE "${AOM_ROOT}/aom_dsp/arm/avg_sve.c"
    319              "${AOM_ROOT}/aom_dsp/arm/blk_sse_sum_sve.c"
    320              "${AOM_ROOT}/aom_dsp/arm/sum_squares_sve.c")
    321 
    322  if(CONFIG_AV1_HIGHBITDEPTH)
    323    list(APPEND AOM_DSP_ENCODER_ASM_SSE2
    324                "${AOM_ROOT}/aom_dsp/x86/highbd_sad4d_sse2.asm"
    325                "${AOM_ROOT}/aom_dsp/x86/highbd_sad_sse2.asm"
    326                "${AOM_ROOT}/aom_dsp/x86/highbd_subpel_variance_impl_sse2.asm"
    327                "${AOM_ROOT}/aom_dsp/x86/highbd_variance_impl_sse2.asm")
    328 
    329    list(APPEND AOM_DSP_ENCODER_INTRIN_SSE2
    330                "${AOM_ROOT}/aom_dsp/x86/highbd_adaptive_quantize_sse2.c"
    331                "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c"
    332                "${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c"
    333                "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse2.c")
    334 
    335    list(APPEND AOM_DSP_ENCODER_INTRIN_AVX2
    336                "${AOM_ROOT}/aom_dsp/x86/highbd_adaptive_quantize_avx2.c"
    337                "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_avx2.c"
    338                "${AOM_ROOT}/aom_dsp/x86/highbd_sad_avx2.c"
    339                "${AOM_ROOT}/aom_dsp/x86/highbd_variance_avx2.c")
    340 
    341    list(APPEND AOM_DSP_ENCODER_INTRIN_SSE4_1
    342                "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse4.c")
    343 
    344    list(APPEND AOM_DSP_ENCODER_INTRIN_NEON
    345                "${AOM_ROOT}/aom_dsp/arm/highbd_avg_neon.c"
    346                "${AOM_ROOT}/aom_dsp/arm/highbd_avg_pred_neon.c"
    347                "${AOM_ROOT}/aom_dsp/arm/highbd_hadamard_neon.c"
    348                "${AOM_ROOT}/aom_dsp/arm/highbd_masked_sad_neon.c"
    349                "${AOM_ROOT}/aom_dsp/arm/highbd_obmc_sad_neon.c"
    350                "${AOM_ROOT}/aom_dsp/arm/highbd_obmc_variance_neon.c"
    351                "${AOM_ROOT}/aom_dsp/arm/highbd_quantize_neon.c"
    352                "${AOM_ROOT}/aom_dsp/arm/highbd_sad_neon.c"
    353                "${AOM_ROOT}/aom_dsp/arm/highbd_sadxd_neon.c"
    354                "${AOM_ROOT}/aom_dsp/arm/highbd_sse_neon.c"
    355                "${AOM_ROOT}/aom_dsp/arm/highbd_subpel_variance_neon.c"
    356                "${AOM_ROOT}/aom_dsp/arm/highbd_variance_neon.c")
    357 
    358    list(APPEND AOM_DSP_ENCODER_INTRIN_NEON_DOTPROD
    359                "${AOM_ROOT}/aom_dsp/arm/highbd_variance_neon_dotprod.c")
    360 
    361    list(APPEND AOM_DSP_ENCODER_INTRIN_SVE
    362                "${AOM_ROOT}/aom_dsp/arm/highbd_sse_sve.c"
    363                "${AOM_ROOT}/aom_dsp/arm/highbd_variance_sve.c")
    364  endif()
    365 
    366  if(CONFIG_INTERNAL_STATS)
    367    list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/fastssim.c"
    368                "${AOM_ROOT}/aom_dsp/psnrhvs.c")
    369  endif()
    370 
    371  if(CONFIG_TUNE_VMAF)
    372    list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/vmaf.c"
    373                "${AOM_ROOT}/aom_dsp/vmaf.h")
    374  endif()
    375 
    376  if(CONFIG_TUNE_BUTTERAUGLI)
    377    list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/butteraugli.c"
    378                "${AOM_ROOT}/aom_dsp/butteraugli.h")
    379  endif()
    380 
    381  if(CONFIG_REALTIME_ONLY)
    382    list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_AVX2
    383                     "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_avx2.c"
    384                     "${AOM_ROOT}/aom_dsp/x86/highbd_adaptive_quantize_avx2.c"
    385                     "${AOM_ROOT}/aom_dsp/x86/obmc_sad_avx2.c"
    386                     "${AOM_ROOT}/aom_dsp/x86/obmc_variance_avx2.c")
    387 
    388    list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_SSE4_1
    389                     "${AOM_ROOT}/aom_dsp/x86/obmc_sad_sse4.c"
    390                     "${AOM_ROOT}/aom_dsp/x86/obmc_variance_sse4.c")
    391 
    392    list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_SSE2
    393                     "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_sse2.c"
    394                     "${AOM_ROOT}/aom_dsp/x86/highbd_adaptive_quantize_sse2.c")
    395 
    396    list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_NEON
    397                     "${AOM_ROOT}/aom_dsp/arm/highbd_obmc_sad_neon.c"
    398                     "${AOM_ROOT}/aom_dsp/arm/highbd_obmc_variance_neon.c"
    399                     "${AOM_ROOT}/aom_dsp/arm/obmc_sad_neon.c"
    400                     "${AOM_ROOT}/aom_dsp/arm/obmc_variance_neon.c")
    401  endif()
    402 endif()
    403 
    404 # Creates aom_dsp build targets. Must not be called until after libaom target
    405 # has been created.
    406 function(setup_aom_dsp_targets)
    407  add_library(aom_dsp_common OBJECT ${AOM_DSP_COMMON_SOURCES})
    408  list(APPEND AOM_LIB_TARGETS aom_dsp_common)
    409  create_no_op_source_file("aom_av1" "c" "no_op_source_file")
    410  add_library(aom_dsp OBJECT "${no_op_source_file}")
    411  target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_common>)
    412  if(BUILD_SHARED_LIBS)
    413    target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_common>)
    414  endif()
    415  list(APPEND AOM_LIB_TARGETS aom_dsp)
    416 
    417  # Not all generators support libraries consisting only of object files. Add a
    418  # source file to the aom_dsp target.
    419  add_no_op_source_file_to_target("aom_dsp" "c")
    420 
    421  if(CONFIG_AV1_DECODER)
    422    add_library(aom_dsp_decoder OBJECT ${AOM_DSP_DECODER_SOURCES})
    423    list(APPEND AOM_LIB_TARGETS aom_dsp_decoder)
    424    target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_decoder>)
    425    if(BUILD_SHARED_LIBS)
    426      target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_decoder>)
    427    endif()
    428  endif()
    429 
    430  if(CONFIG_AV1_ENCODER)
    431    add_library(aom_dsp_encoder OBJECT ${AOM_DSP_ENCODER_SOURCES})
    432    list(APPEND AOM_LIB_TARGETS aom_dsp_encoder)
    433    target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_encoder>)
    434    if(BUILD_SHARED_LIBS)
    435      target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_encoder>)
    436    endif()
    437    if(CONFIG_TUNE_VMAF)
    438      target_include_directories(aom_dsp_encoder PRIVATE ${VMAF_INCLUDE_DIRS})
    439    endif()
    440  endif()
    441 
    442  if(HAVE_SSE2)
    443    add_asm_library("aom_dsp_common_sse2" "AOM_DSP_COMMON_ASM_SSE2")
    444    add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_common"
    445                                  "AOM_DSP_COMMON_INTRIN_SSE2")
    446 
    447    if(CONFIG_AV1_ENCODER)
    448      if("${AOM_TARGET_CPU}" STREQUAL "x86_64")
    449        list(APPEND AOM_DSP_ENCODER_ASM_SSE2 ${AOM_DSP_ENCODER_ASM_SSE2_X86_64})
    450      endif()
    451      add_asm_library("aom_dsp_encoder_sse2" "AOM_DSP_ENCODER_ASM_SSE2")
    452      add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_encoder"
    453                                    "AOM_DSP_ENCODER_INTRIN_SSE2")
    454    endif()
    455  endif()
    456 
    457  if(HAVE_SSSE3)
    458    add_asm_library("aom_dsp_common_ssse3" "AOM_DSP_COMMON_ASM_SSSE3")
    459    add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_common"
    460                                  "AOM_DSP_COMMON_INTRIN_SSSE3")
    461 
    462    if(CONFIG_AV1_ENCODER)
    463      if("${AOM_TARGET_CPU}" STREQUAL "x86_64")
    464        list(APPEND AOM_DSP_ENCODER_ASM_SSSE3
    465                    ${AOM_DSP_ENCODER_ASM_SSSE3_X86_64})
    466      endif()
    467      add_asm_library("aom_dsp_encoder_ssse3" "AOM_DSP_ENCODER_ASM_SSSE3")
    468      add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_encoder"
    469                                    "AOM_DSP_ENCODER_INTRIN_SSSE3")
    470    endif()
    471  endif()
    472 
    473  if(HAVE_SSE4_1)
    474    add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_common"
    475                                  "AOM_DSP_COMMON_INTRIN_SSE4_1")
    476    if(CONFIG_AV1_ENCODER)
    477      add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_encoder"
    478                                    "AOM_DSP_ENCODER_INTRIN_SSE4_1")
    479    endif()
    480  endif()
    481 
    482  if(HAVE_AVX)
    483    if(CONFIG_AV1_ENCODER)
    484      add_intrinsics_object_library("-mavx" "avx" "aom_dsp_encoder"
    485                                    "AOM_DSP_ENCODER_INTRIN_AVX")
    486    endif()
    487  endif()
    488 
    489  if(HAVE_AVX2)
    490    add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_common"
    491                                  "AOM_DSP_COMMON_INTRIN_AVX2")
    492    if(CONFIG_AV1_ENCODER)
    493      add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_encoder"
    494                                    "AOM_DSP_ENCODER_INTRIN_AVX2")
    495    endif()
    496  endif()
    497 
    498  if(HAVE_AVX512 AND CONFIG_AV1_ENCODER AND CONFIG_HIGHWAY)
    499    add_intrinsics_object_library("-march=skylake-avx512" "avx512"
    500                                  "aom_dsp_encoder"
    501                                  "AOM_DSP_ENCODER_INTRIN_AVX512")
    502  endif()
    503 
    504  if(HAVE_NEON)
    505    add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
    506                                  "aom_dsp_common" "AOM_DSP_COMMON_INTRIN_NEON")
    507    if(CONFIG_AV1_ENCODER)
    508      add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
    509                                    "aom_dsp_encoder"
    510                                    "AOM_DSP_ENCODER_INTRIN_NEON")
    511    endif()
    512  endif()
    513 
    514  if(HAVE_NEON_DOTPROD)
    515    add_intrinsics_object_library("${AOM_NEON_DOTPROD_FLAG}" "neon_dotprod"
    516                                  "aom_dsp_common"
    517                                  "AOM_DSP_COMMON_INTRIN_NEON_DOTPROD")
    518    if(CONFIG_AV1_ENCODER)
    519      add_intrinsics_object_library("${AOM_NEON_DOTPROD_FLAG}" "neon_dotprod"
    520                                    "aom_dsp_encoder"
    521                                    "AOM_DSP_ENCODER_INTRIN_NEON_DOTPROD")
    522    endif()
    523  endif()
    524 
    525  if(HAVE_NEON_I8MM)
    526    add_intrinsics_object_library("${AOM_NEON_I8MM_FLAG}" "neon_i8mm"
    527                                  "aom_dsp_common"
    528                                  "AOM_DSP_COMMON_INTRIN_NEON_I8MM")
    529  endif()
    530 
    531  if(HAVE_SVE)
    532    add_intrinsics_object_library("${AOM_SVE_FLAG}" "sve" "aom_dsp_common"
    533                                  "AOM_DSP_COMMON_INTRIN_SVE")
    534    if(CONFIG_AV1_ENCODER)
    535      add_intrinsics_object_library("${AOM_SVE_FLAG}" "sve" "aom_dsp_encoder"
    536                                    "AOM_DSP_ENCODER_INTRIN_SVE")
    537    endif()
    538  endif()
    539 
    540  target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp>)
    541  if(BUILD_SHARED_LIBS)
    542    target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp>)
    543  endif()
    544 
    545  # Pass the new lib targets up to the parent scope instance of
    546  # $AOM_LIB_TARGETS.
    547  set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)
    548 endfunction()