5d2117015e
As a follow up to the SSE 4.1 CL, this should look pretty familiar. I've made some organizational changes around how we load, store, pack, and unpack data that I think makes things clearer and more orthogonal, and it'll make it easier to try out a pmaddubsw lerp. I have backported these changes to the SSE 4.1 code, and I hope that I can actually get a lot of this code templated for sharing between the two later. Perf changes (relative to SSE 4.1): Xfermode_SrcOver: 1650 -> 1180 (0.71x) // large opaque blit Xfermode_SrcOver_aa: 1794 -> 1653 (0.92x) // large opaque + small transparent text_16_AA_{FF,BK,WT}: 1.72 -> 1.59 (0.92x) // small opaque blit text_16_AA_88: 1.83 -> 1.77 (0.97x) // small transparent blit This should be a big throughout win, and a small latency win. This should all be pixel-exact to the previous SSE 4.1 code. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1532613002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot Review URL: https://codereview.chromium.org/1532613002
66 lines
2.7 KiB
Python
66 lines
2.7 KiB
Python
# Copyright 2015 Google Inc.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
{
|
|
'none_sources': [
|
|
'<(skia_src_path)/opts/SkBitmapProcState_opts_none.cpp',
|
|
'<(skia_src_path)/opts/SkBlitMask_opts_none.cpp',
|
|
'<(skia_src_path)/opts/SkBlitRow_opts_none.cpp',
|
|
],
|
|
|
|
'armv7_sources': [
|
|
'<(skia_src_path)/opts/SkBitmapProcState_opts_arm.cpp',
|
|
'<(skia_src_path)/opts/SkBlitMask_opts_arm.cpp',
|
|
'<(skia_src_path)/opts/SkBlitRow_opts_arm.cpp',
|
|
],
|
|
'neon_sources': [
|
|
'<(skia_src_path)/opts/SkBitmapProcState_arm_neon.cpp',
|
|
'<(skia_src_path)/opts/SkBitmapProcState_matrixProcs_neon.cpp',
|
|
'<(skia_src_path)/opts/SkBlitMask_opts_arm_neon.cpp',
|
|
'<(skia_src_path)/opts/SkBlitRow_opts_arm_neon.cpp',
|
|
'<(skia_src_path)/opts/SkOpts_neon.cpp',
|
|
],
|
|
'arm64_sources': [
|
|
'<(skia_src_path)/opts/SkBitmapProcState_arm_neon.cpp',
|
|
'<(skia_src_path)/opts/SkBitmapProcState_matrixProcs_neon.cpp',
|
|
'<(skia_src_path)/opts/SkBitmapProcState_opts_arm.cpp',
|
|
'<(skia_src_path)/opts/SkBlitMask_opts_arm.cpp',
|
|
'<(skia_src_path)/opts/SkBlitMask_opts_arm_neon.cpp',
|
|
'<(skia_src_path)/opts/SkBlitRow_opts_arm.cpp',
|
|
'<(skia_src_path)/opts/SkBlitRow_opts_arm_neon.cpp',
|
|
'<(skia_src_path)/opts/SkOpts_neon.cpp',
|
|
],
|
|
|
|
'mips_dsp_sources': [
|
|
'<(skia_src_path)/opts/SkBitmapProcState_opts_mips_dsp.cpp',
|
|
'<(skia_src_path)/opts/SkBlitMask_opts_none.cpp',
|
|
'<(skia_src_path)/opts/SkBlitRow_opts_mips_dsp.cpp',
|
|
],
|
|
|
|
'sse2_sources': [
|
|
'<(skia_src_path)/opts/SkBitmapFilter_opts_SSE2.cpp',
|
|
'<(skia_src_path)/opts/SkBitmapProcState_opts_SSE2.cpp',
|
|
'<(skia_src_path)/opts/SkBlitRow_opts_SSE2.cpp',
|
|
'<(skia_src_path)/opts/opts_check_x86.cpp',
|
|
],
|
|
'ssse3_sources': [
|
|
'<(skia_src_path)/opts/SkBitmapProcState_opts_SSSE3.cpp',
|
|
'<(skia_src_path)/opts/SkOpts_ssse3.cpp',
|
|
],
|
|
'sse41_sources': [
|
|
'<(skia_src_path)/opts/SkBlitRow_opts_SSE4.cpp',
|
|
'<(skia_src_path)/opts/SkOpts_sse41.cpp',
|
|
],
|
|
# These targets are empty, but XCode doesn't like that, so add an empty file to each.
|
|
'sse42_sources': [
|
|
'<(skia_src_path)/core/SkForceCPlusPlusLinking.cpp',
|
|
],
|
|
'avx_sources': [
|
|
'<(skia_src_path)/opts/SkOpts_avx.cpp',
|
|
],
|
|
'avx2_sources': [
|
|
'<(skia_src_path)/opts/SkOpts_avx2.cpp',
|
|
],
|
|
}
|