Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Issue 143423004: ARM Skia NEON patches - 35 - First AArch64 support (Closed)

Created:
6 years, 10 months ago by kevin.petit
Modified:
6 years, 8 months ago
CC:
skia-review_googlegroups.com, rmcilroy
Base URL:
https://skia.googlesource.com/skia.git@master
Visibility:
Public.

Description

ARM Skia NEON patches - 35 - First AArch64 support Aarch64 support This change contains the necessary modifications to have Skia build and run properly on an ARMv8 processor in aarch64 execution state. Here's a list of the changes: - add an arm64 target to the build system + SK_CPU_ARM64 flag - MatrixTest was failing when built in Release mode. Fused MAC instructions were generated which made some intermediate results more accurate. As the test relies on result comparison, the more precise results when compared to others led to a gap bigger than what was tolerated. As I don't know if some actual skia code relies on results being comparable, I've disabled fused MAC instruction with -ffp-contract=off for arm64. - Modify include/core/SkOnce.h to have barriers work. - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS. - use existing Xfermode optimisations with modifications that can be removed in the future when toolchains are ready. Also save a few instructions is two Xfermodes (will apply to ARM too). - use existing SkBoxBlur and SkMorphology optimisations. - use existing SkBlitMask optimisations - use existing BitmapProcState and Convolution optimisations. Future changes will include: - Blitters (only partialy merged upstream) - SkUtils (there's little value in sending asm optimisations without having them benchmarked on real hardware). Signed-off-by: Kevin PETIT <kevin.petit@arm.com>; BUG=skia: Committed: http://code.google.com/p/skia/source/detail?r=13980 Committed: http://code.google.com/p/skia/source/detail?r=14025

Patch Set 1 #

Patch Set 2 : Rebase #

Total comments: 13

Patch Set 3 : Review comments #

Total comments: 7

Patch Set 4 : Modify the build script appropriately #

Patch Set 5 : Define skia_arch_width=64 by default for arm64 #

Total comments: 1

Patch Set 6 : Refactor gyp variable definition #

Total comments: 2

Patch Set 7 : Move definition of skia_arch_width #

Total comments: 4

Patch Set 8 : Some more gyp file tuning #

Unified diffs Side-by-side diffs Delta from patch set Stats (+112 lines, -22 lines) Patch
M gyp/common_conditions.gypi View 1 2 3 4 5 6 7 1 chunk +6 lines, -0 lines 0 comments Download
M gyp/common_variables.gypi View 1 2 3 4 5 6 7 2 chunks +3 lines, -1 line 0 comments Download
M gyp/opts.gyp View 1 2 1 chunk +17 lines, -0 lines 0 comments Download
M include/core/SkOnce.h View 1 2 1 chunk +3 lines, -5 lines 0 comments Download
M include/core/SkPreConfig.h View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M platform_tools/barelinux/bin/arm64_make View 1 2 3 4 2 chunks +2 lines, -7 lines 0 comments Download
M src/core/SkUtilsArm.h View 1 chunk +1 line, -1 line 0 comments Download
M src/opts/SkBitmapProcState_opts_arm.cpp View 1 2 5 chunks +4 lines, -4 lines 0 comments Download
M src/opts/SkXfermode_opts_arm_neon.cpp View 1 2 15 chunks +72 lines, -4 lines 0 comments Download

Messages

Total messages: 50 (0 generated)
kevin.petit
6 years, 10 months ago (2014-02-10 15:07:04 UTC) #1
hal.canary
Should arm64 be another skia_arch_type, or should we leave it skia_arch_type=arm but with skia_arch_width=64? That ...
6 years, 9 months ago (2014-03-18 16:01:07 UTC) #2
kevin.petit
On 2014/03/18 16:01:07, Hal Canary wrote: > Should arm64 be another skia_arch_type, or should we ...
6 years, 9 months ago (2014-03-18 16:22:56 UTC) #3
hal.canary
Kevin, Which GYP_DEFINES were you passing to gyp_skia to test this?
6 years, 9 months ago (2014-03-18 16:24:28 UTC) #4
hal.canary
On 2014/03/18 16:24:28, Hal Canary wrote: > Kevin, > > Which GYP_DEFINES were you passing ...
6 years, 9 months ago (2014-03-18 16:30:01 UTC) #5
kevin.petit
On 2014/03/18 16:24:28, Hal Canary wrote: > Kevin, > > Which GYP_DEFINES were you passing ...
6 years, 9 months ago (2014-03-18 16:30:10 UTC) #6
kevin.petit
On 2014/03/18 16:30:01, Hal Canary wrote: > On 2014/03/18 16:24:28, Hal Canary wrote: > > ...
6 years, 9 months ago (2014-03-18 16:32:29 UTC) #7
hal.canary
https://codereview.chromium.org/143423004/diff/30001/gyp/common_conditions.gypi File gyp/common_conditions.gypi (right): https://codereview.chromium.org/143423004/diff/30001/gyp/common_conditions.gypi#newcode13 gyp/common_conditions.gypi:13: '-ffp-contract=off', Why are you adding this? We don't use ...
6 years, 9 months ago (2014-03-20 13:55:27 UTC) #8
kevin.petit
On 2014/03/20 13:55:27, Hal Canary wrote: > https://codereview.chromium.org/143423004/diff/30001/gyp/common_conditions.gypi > File gyp/common_conditions.gypi (right): > > https://codereview.chromium.org/143423004/diff/30001/gyp/common_conditions.gypi#newcode13 ...
6 years, 9 months ago (2014-03-20 14:03:43 UTC) #9
mtklein
On 2014/03/20 14:03:43, kevin.petit wrote: > On 2014/03/20 13:55:27, Hal Canary wrote: > > > ...
6 years, 9 months ago (2014-03-20 14:15:25 UTC) #10
kevin.petit
On 2014/03/20 14:15:25, mtklein wrote: > On 2014/03/20 14:03:43, kevin.petit wrote: > > On 2014/03/20 ...
6 years, 9 months ago (2014-03-20 14:21:04 UTC) #11
mtklein
On 2014/03/20 14:21:04, kevin.petit wrote: > On 2014/03/20 14:15:25, mtklein wrote: > > On 2014/03/20 ...
6 years, 9 months ago (2014-03-20 14:23:44 UTC) #12
kevin.petit
On 2014/03/20 14:23:44, mtklein wrote: > On 2014/03/20 14:21:04, kevin.petit wrote: > > On 2014/03/20 ...
6 years, 9 months ago (2014-03-20 14:32:14 UTC) #13
djsollen
https://codereview.chromium.org/143423004/diff/30001/gyp/common_conditions.gypi File gyp/common_conditions.gypi (right): https://codereview.chromium.org/143423004/diff/30001/gyp/common_conditions.gypi#newcode13 gyp/common_conditions.gypi:13: '-ffp-contract=off', On 2014/03/20 13:55:27, Hal Canary wrote: > Why ...
6 years, 9 months ago (2014-03-20 14:40:15 UTC) #14
djsollen
https://codereview.chromium.org/143423004/diff/30001/gyp/opts.gyp File gyp/opts.gyp (right): https://codereview.chromium.org/143423004/diff/30001/gyp/opts.gyp#newcode117 gyp/opts.gyp:117: [ 'skia_arch_type == "arm64"', { So chromium is opting ...
6 years, 9 months ago (2014-03-20 15:37:27 UTC) #15
kevin.petit
https://codereview.chromium.org/143423004/diff/30001/gyp/common_conditions.gypi File gyp/common_conditions.gypi (right): https://codereview.chromium.org/143423004/diff/30001/gyp/common_conditions.gypi#newcode13 gyp/common_conditions.gypi:13: '-ffp-contract=off', On 2014/03/20 14:40:16, djsollen wrote: > On 2014/03/20 ...
6 years, 9 months ago (2014-03-20 16:05:08 UTC) #16
kevin.petit
https://codereview.chromium.org/143423004/diff/150001/include/core/SkOnce.h File include/core/SkOnce.h (right): https://codereview.chromium.org/143423004/diff/150001/include/core/SkOnce.h#newcode89 include/core/SkOnce.h:89: asm volatile("dmb ish" : : : "memory"); This barrier ...
6 years, 9 months ago (2014-03-24 11:42:08 UTC) #17
djsollen
https://codereview.chromium.org/143423004/diff/150001/src/opts/SkXfermode_opts_arm_neon.cpp File src/opts/SkXfermode_opts_arm_neon.cpp (right): https://codereview.chromium.org/143423004/diff/150001/src/opts/SkXfermode_opts_arm_neon.cpp#newcode50 src/opts/SkXfermode_opts_arm_neon.cpp:50: #endif On 2014/03/24 11:42:08, kevin.petit wrote: > I've thought ...
6 years, 9 months ago (2014-03-24 13:29:07 UTC) #18
kevin.petit
https://codereview.chromium.org/143423004/diff/150001/src/opts/SkXfermode_opts_arm_neon.cpp File src/opts/SkXfermode_opts_arm_neon.cpp (right): https://codereview.chromium.org/143423004/diff/150001/src/opts/SkXfermode_opts_arm_neon.cpp#newcode50 src/opts/SkXfermode_opts_arm_neon.cpp:50: #endif On 2014/03/24 13:29:08, djsollen wrote: > On 2014/03/24 ...
6 years, 9 months ago (2014-03-24 14:20:24 UTC) #19
hal.canary
Kevin, We now have infrastructure in place to test your patch. To see what the ...
6 years, 9 months ago (2014-03-25 16:41:52 UTC) #20
kevin.petit
On 2014/03/25 16:41:52, Hal Canary wrote: > Kevin, > > We now have infrastructure in ...
6 years, 9 months ago (2014-03-25 17:02:39 UTC) #21
hal.canary
On 2014/03/25 17:02:39, kevin.petit wrote: > Great news! Do you mean I should modify the ...
6 years, 9 months ago (2014-03-25 17:05:25 UTC) #22
djsollen
On 2014/03/25 17:05:25, Hal Canary wrote: > On 2014/03/25 17:02:39, kevin.petit wrote: > > Great ...
6 years, 9 months ago (2014-03-25 17:36:45 UTC) #23
hal.canary
On 2014/03/25 17:36:45, djsollen wrote: > On 2014/03/25 17:05:25, Hal Canary wrote: > > On ...
6 years, 9 months ago (2014-03-25 17:52:16 UTC) #24
kevin.petit
On 2014/03/25 17:52:16, Hal Canary wrote: > On 2014/03/25 17:36:45, djsollen wrote: > > On ...
6 years, 9 months ago (2014-03-25 17:54:09 UTC) #25
hal.canary
Can you add this to common_variables.gypi: [ 'skia_arch_type == "arm64"', { 'skia_arch_width%': 64 }, { ...
6 years, 9 months ago (2014-03-25 18:02:45 UTC) #26
kevin.petit
On 2014/03/25 18:02:45, Hal Canary wrote: > Can you add this to common_variables.gypi: > > ...
6 years, 9 months ago (2014-03-25 18:21:28 UTC) #27
hal.canary
On 2014/03/25 18:21:28, kevin.petit wrote: > Good idea, done. Apparently you have to add a ...
6 years, 9 months ago (2014-03-25 18:24:54 UTC) #28
djsollen
looks good with one minor change. As soon as we make that I'm happy to ...
6 years, 9 months ago (2014-03-28 14:31:24 UTC) #29
hal.canary
looks ready to commit to me.
6 years, 9 months ago (2014-03-28 14:31:43 UTC) #30
kevin.petit
On 2014/03/28 14:31:24, djsollen wrote: > looks good with one minor change. As soon as ...
6 years, 9 months ago (2014-03-28 14:42:49 UTC) #31
djsollen
lgtm
6 years, 9 months ago (2014-03-28 15:03:04 UTC) #32
kevin.petit
The CQ bit was checked by kevin.petit@arm.com
6 years, 9 months ago (2014-03-28 16:19:09 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://skia-tree-status.appspot.com/cq/kevin.petit@arm.com/143423004/290001
6 years, 9 months ago (2014-03-28 16:19:18 UTC) #34
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-28 16:19:24 UTC) #35
commit-bot: I haz the power
Presubmit check for 143423004-290001 failed and returned exit status 1. Running presubmit commit checks ...
6 years, 9 months ago (2014-03-28 16:19:24 UTC) #36
kevin.petit
On 2014/03/28 16:19:24, I haz the power (commit-bot) wrote: > Presubmit check for 143423004-290001 failed ...
6 years, 9 months ago (2014-03-28 16:21:23 UTC) #37
reed1
public api lgtm
6 years, 9 months ago (2014-03-28 16:28:38 UTC) #38
kevin.petit
The CQ bit was checked by kevin.petit@arm.com
6 years, 9 months ago (2014-03-28 16:32:17 UTC) #39
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://skia-tree-status.appspot.com/cq/kevin.petit@arm.com/143423004/290001
6 years, 9 months ago (2014-03-28 16:32:27 UTC) #40
commit-bot: I haz the power
Change committed as 13980
6 years, 9 months ago (2014-03-28 17:56:17 UTC) #41
mtklein
A revert of this CL has been created in https://codereview.chromium.org/216113005/ by mtklein@google.com. The reason for ...
6 years, 9 months ago (2014-03-28 18:05:13 UTC) #42
djsollen
https://codereview.chromium.org/143423004/diff/290001/gyp/common_variables.gypi File gyp/common_variables.gypi (right): https://codereview.chromium.org/143423004/diff/290001/gyp/common_variables.gypi#newcode75 gyp/common_variables.gypi:75: [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "mac"] or ...
6 years, 9 months ago (2014-03-28 20:53:22 UTC) #43
kevin.petit
https://codereview.chromium.org/143423004/diff/290001/gyp/common_variables.gypi File gyp/common_variables.gypi (right): https://codereview.chromium.org/143423004/diff/290001/gyp/common_variables.gypi#newcode75 gyp/common_variables.gypi:75: [ 'skia_os in ["linux", "freebsd", "openbsd", "solaris", "mac"] or ...
6 years, 8 months ago (2014-04-01 10:30:31 UTC) #44
kevin.petit
I've had a look at the trybot results. As far as I can say, the ...
6 years, 8 months ago (2014-04-01 16:23:08 UTC) #45
djsollen
sorry for the run around on this. If this doesn't work then I'll be happy ...
6 years, 8 months ago (2014-04-01 18:52:17 UTC) #46
kevin.petit
No worries, this should hopefully be the last round. https://codereview.chromium.org/143423004/diff/300001/gyp/common_variables.gypi File gyp/common_variables.gypi (right): https://codereview.chromium.org/143423004/diff/300001/gyp/common_variables.gypi#newcode49 gyp/common_variables.gypi:49: ...
6 years, 8 months ago (2014-04-02 13:16:47 UTC) #47
kevin.petit
The CQ bit was checked by kevin.petit@arm.com
6 years, 8 months ago (2014-04-02 15:03:29 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://skia-tree-status.appspot.com/cq/kevin.petit@arm.com/143423004/320001
6 years, 8 months ago (2014-04-02 15:03:42 UTC) #49
commit-bot: I haz the power
6 years, 8 months ago (2014-04-02 15:04:02 UTC) #50
Message was sent while issue was closed.
Change committed as 14025

Powered by Google App Engine
This is Rietveld 408576698