aboutsummaryrefslogtreecommitdiffhomepage
path: root/BUILD.gn
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-01-12 11:36:46 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-01-13 17:25:15 +0000
commit4ef8cb3527b7e3f453dccd39eea76e31eb2c33c7 (patch)
treebbb69e2f6aa3113192508451a8f99f96eefc8e07 /BUILD.gn
parent70b49fd063171a78d3c664ca8af3988f5426319b (diff)
some armv7 hacking
We can splice these stages if we drop them down to 2 at a time. Turns out this is significantly (2-3x) faster than the status quo. SkRasterPipeline_… …f16_compile 1x …srgb_compile 2.06x …f16_run 3.08x …srgb_run 4.61x Added a couple ways to detect (likely) the required VFPv4 support: - use hwcap when available (NDK ≥21, Android framework) - use cpu-features when not (NDK <21) The code in SkSplicer_generated.h is ARM, not Thumb2. SkSplicer seems to be blx'ing into it, so that's great, and we bx lr out. There's no point in attempting to use Thumb2 in vector heavy code... it'll all be 4 byte anyway. Follow ups: - vpush {d8-d9} before the loop, vpop {d8-d9} afterwards, skip these instructions when splicing; - (probably) drop jumping stages down to 2-at-a-time also. Change-Id: If151394ec10e8cbd6a05e2d81808488d743bfe15 Reviewed-on: https://skia-review.googlesource.com/6940 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'BUILD.gn')
-rw-r--r--BUILD.gn9
1 files changed, 5 insertions, 4 deletions
diff --git a/BUILD.gn b/BUILD.gn
index 16eb634e6f..ddc884b692 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -30,9 +30,7 @@ declare_args() {
skia_enable_discrete_gpu = true
skia_enable_gpu = true
skia_enable_pdf = true
- skia_enable_splicer =
- is_skia_standalone && sanitize != "MSAN" &&
- (is_linux || is_mac || is_win || (is_android && target_cpu == "arm64"))
+ skia_enable_splicer = is_skia_standalone && sanitize != "MSAN" && !is_ios
skia_enable_tools = is_skia_standalone
skia_enable_vulkan_debug_layers = is_skia_standalone && is_debug
skia_vulkan_sdk = getenv("VULKAN_SDK")
@@ -648,7 +646,10 @@ component("skia") {
}
if (is_android) {
- deps += [ "//third_party/expat" ]
+ deps += [
+ "//third_party/cpu-features",
+ "//third_party/expat",
+ ]
sources += [ "src/ports/SkDebug_android.cpp" ]
libs += [
"EGL",