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

Issue 26627004: ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs (Closed)

Created:
7 years, 2 months ago by kevin.petit.not.used.account
Modified:
7 years, 2 months ago
CC:
skia-review_googlegroups.com
Visibility:
Public.

Description

ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs Xfermode: NEON implementation of SIMD procs This patch contains a NEON implementation for a number of Xfermodes. It provides a big speedup on Xfermode benchmarks (currently up to 3x with gcc4.7 but up to 10x when gcc produces optimal code for it). Signed-off-by: Kévin PETIT <kevin.petit@arm.com>; BUG= Committed: http://code.google.com/p/skia/source/detail?r=11777 Committed: http://code.google.com/p/skia/source/detail?r=11813 Committed: http://code.google.com/p/skia/source/detail?r=11843

Patch Set 1 #

Patch Set 2 : Fix optional NEON #

Total comments: 2

Patch Set 3 : Move NEON code to a separate file #

Total comments: 1

Patch Set 4 : Make the factory bullet-proof #

Patch Set 5 : A bit ugly but serialization is working #

Patch Set 6 : Add missing header #

Total comments: 2

Patch Set 7 : Fix the Debug build #

Patch Set 8 : Fix the chrome build #

Patch Set 9 : Add a workaround for gcc4.6 #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+766 lines, -148 lines) Patch
M gyp/core.gyp View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M gyp/opts.gyp View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M src/core/SkXfermode.cpp View 1 2 3 4 5 6 2 chunks +8 lines, -0 lines 0 comments Download
M src/core/SkXfermode_proccoeff.h View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M src/opts/SkColor_opts_neon.h View 1 chunk +21 lines, -0 lines 0 comments Download
M src/opts/SkXfermode_opts_arm.cpp View 1 2 3 1 chunk +6 lines, -148 lines 0 comments Download
A src/opts/SkXfermode_opts_arm_neon.h View 1 2 3 4 5 1 chunk +27 lines, -0 lines 0 comments Download
A src/opts/SkXfermode_opts_arm_neon.cpp View 1 2 3 4 5 6 7 8 1 chunk +698 lines, -0 lines 1 comment Download

Messages

Total messages: 61 (0 generated)
kevin.petit.not.used.account
This is the NEON code that make https://codereview.chromium.org/23644006/ useful.
7 years, 2 months ago (2013-10-09 16:04:08 UTC) #1
djsollen
doesn't this code need to be compiled with '-mfpu=neon'? I believe that the current way ...
7 years, 2 months ago (2013-10-09 16:16:57 UTC) #2
kevin.petit.not.used.account
On 2013/10/09 16:16:57, djsollen wrote: > doesn't this code need to be compiled with '-mfpu=neon'? ...
7 years, 2 months ago (2013-10-09 17:23:08 UTC) #3
kevin.petit.not.used.account
Patch Set 2 works in all cases (no NEON / optional NEON / always NEON) ...
7 years, 2 months ago (2013-10-10 11:27:21 UTC) #4
djsollen
Your right that we should have a bot that builds with NEON conditionally. I'll follow ...
7 years, 2 months ago (2013-10-10 12:47:46 UTC) #5
kevin.petit.not.used.account
I agree with your comments and that was exactly my first idea but then I ...
7 years, 2 months ago (2013-10-10 13:18:26 UTC) #6
djsollen
Option 2 or 3 work for me. For #2 it may take a little longer, ...
7 years, 2 months ago (2013-10-10 13:20:39 UTC) #7
kevin.petit.not.used.account
Option 2 it is then. What you want to review is the code above (inclusive) ...
7 years, 2 months ago (2013-10-10 14:02:25 UTC) #8
djsollen
https://codereview.chromium.org/26627004/diff/15001/src/opts/SkXfermode_opts_arm_neon.cpp File src/opts/SkXfermode_opts_arm_neon.cpp (right): https://codereview.chromium.org/26627004/diff/15001/src/opts/SkXfermode_opts_arm_neon.cpp#newcode696 src/opts/SkXfermode_opts_arm_neon.cpp:696: if ((sk_cpu_arm_has_neon()) && (gNEONXfermodeProcs[mode] != NULL)) { my concern ...
7 years, 2 months ago (2013-10-10 14:24:23 UTC) #9
kevin.petit.not.used.account
On 2013/10/10 14:24:23, djsollen wrote: > https://codereview.chromium.org/26627004/diff/15001/src/opts/SkXfermode_opts_arm_neon.cpp > File src/opts/SkXfermode_opts_arm_neon.cpp (right): > > https://codereview.chromium.org/26627004/diff/15001/src/opts/SkXfermode_opts_arm_neon.cpp#newcode696 > ...
7 years, 2 months ago (2013-10-10 14:40:14 UTC) #10
djsollen
looks like the serialization code isn't complete in that it doesn't support serialization.
7 years, 2 months ago (2013-10-10 16:19:28 UTC) #11
kevin.petit.not.used.account
On 2013/10/10 16:19:28, djsollen wrote: > looks like the serialization code isn't complete in that ...
7 years, 2 months ago (2013-10-10 16:26:21 UTC) #12
djsollen
If we are serializing to a file that automatically puts us into cross process mode ...
7 years, 2 months ago (2013-10-10 16:33:19 UTC) #13
kevin.petit.not.used.account
On 2013/10/10 16:33:19, djsollen wrote: > If we are serializing to a file that automatically ...
7 years, 2 months ago (2013-10-10 16:37:22 UTC) #14
kevin.petit.not.used.account
After a little more investigations, and unless I've missed something really obvious, it seems to ...
7 years, 2 months ago (2013-10-10 17:32:22 UTC) #15
kevin.petit.not.used.account
I think I've found the issue. There's no entry for SkNEONProcCoeffXfermode in the registrar group ...
7 years, 2 months ago (2013-10-11 10:39:49 UTC) #16
kevin.petit.not.used.account
I've uploaded a patch with my ugly idea. Everything seems to be working this time.
7 years, 2 months ago (2013-10-11 11:52:29 UTC) #17
djsollen
On 2013/10/11 11:52:29, kevin.petit.arm wrote: > I've uploaded a patch with my ugly idea. Everything ...
7 years, 2 months ago (2013-10-11 17:12:23 UTC) #18
kevin.petit.not.used.account
On 2013/10/11 17:12:23, djsollen wrote: > I'm out of the office today, so I'm not ...
7 years, 2 months ago (2013-10-14 13:09:08 UTC) #19
djsollen
If we need to do this more in the future I think I would like ...
7 years, 2 months ago (2013-10-14 14:12:24 UTC) #20
kevin.petit.not.used.account
https://codereview.chromium.org/26627004/diff/31001/src/opts/SkXfermode_opts_arm_neon.cpp File src/opts/SkXfermode_opts_arm_neon.cpp (right): https://codereview.chromium.org/26627004/diff/31001/src/opts/SkXfermode_opts_arm_neon.cpp#newcode577 src/opts/SkXfermode_opts_arm_neon.cpp:577: On 2013/10/14 14:12:25, djsollen wrote: > if (NULL == ...
7 years, 2 months ago (2013-10-14 14:15:56 UTC) #21
kevin.petit.not.used.account
On 2013/10/14 14:12:24, djsollen wrote: > If we need to do this more in the ...
7 years, 2 months ago (2013-10-14 14:18:12 UTC) #22
djsollen
So I'm good with the structure of the code, but the functions themselves have some ...
7 years, 2 months ago (2013-10-14 15:50:09 UTC) #23
kevin.petit.not.used.account
On 2013/10/14 15:50:09, djsollen wrote: > So I'm good with the structure of the code, ...
7 years, 2 months ago (2013-10-14 16:18:41 UTC) #24
djsollen
The differences on my side are pretty glaring. Have you tried writing both of them ...
7 years, 2 months ago (2013-10-14 16:28:22 UTC) #25
kevin.petit.not.used.account
Are the reference images against which the output is compared the very latest ones or ...
7 years, 2 months ago (2013-10-14 16:28:38 UTC) #26
djsollen
On 2013/10/14 16:28:38, kevin.petit.arm wrote: > Are the reference images against which the output is ...
7 years, 2 months ago (2013-10-14 16:32:03 UTC) #27
kevin.petit.not.used.account
I've checked that Patch Set 6 was the same code I have. I've redone everything ...
7 years, 2 months ago (2013-10-14 17:30:33 UTC) #28
djsollen
What device are you testing on and what are your build commands? I run... rm ...
7 years, 2 months ago (2013-10-14 18:13:49 UTC) #29
kevin.petit.not.used.account
It was only failing when building in debug mode, that's what caused the confusion. Patch ...
7 years, 2 months ago (2013-10-15 11:57:32 UTC) #30
djsollen
If the test passes like I believe it will then I think this is good ...
7 years, 2 months ago (2013-10-15 14:26:53 UTC) #31
kevin.petit.not.used.account
bsalomon fixed the build issue. Could you retrigger the bot please?
7 years, 2 months ago (2013-10-15 14:44:58 UTC) #32
djsollen
lgtm, I ran the tests locally and its passing so there is no need to ...
7 years, 2 months ago (2013-10-15 15:54:25 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@gmail.com/26627004/55001
7 years, 2 months ago (2013-10-15 15:54:40 UTC) #34
commit-bot: I haz the power
Change committed as 11777
7 years, 2 months ago (2013-10-15 16:18:44 UTC) #35
robertphillips
This is failing to compile in Chrome: FAILED: /mnt/scratch0/b_used/build/goma/gomacc /mnt/scratch0/b_used/build/slave/android_clang_dbg/build/src/third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/skia/src/opts/skia_opts_neon.SkXfermode_opts_arm_neon.o.d -DANGLE_DX11 -D_FILE_OFFSET_BITS=64 ...
7 years, 2 months ago (2013-10-16 01:06:35 UTC) #36
robertphillips
reverted in r11799 (please see prior comment for compilation log
7 years, 2 months ago (2013-10-16 01:13:48 UTC) #37
kevin.petit.not.used.account
On 2013/10/16 01:13:48, robertphillips wrote: > reverted in r11799 (please see prior comment for compilation ...
7 years, 2 months ago (2013-10-16 10:44:19 UTC) #38
robertphillips
On 2013/10/16 10:44:19, kevin.petit.arm wrote: > On 2013/10/16 01:13:48, robertphillips wrote: > > reverted in ...
7 years, 2 months ago (2013-10-16 11:41:50 UTC) #39
kevin.petit.not.used.account
On 2013/10/16 11:41:50, robertphillips wrote: > On 2013/10/16 10:44:19, kevin.petit.arm wrote: > > On 2013/10/16 ...
7 years, 2 months ago (2013-10-16 11:46:59 UTC) #40
robertphillips
These logs may be more informative: android_rel: http://build.chromium.org/p/tryserver.chromium/builders/android_rel/builds/2664/steps/compile/logs/stdio android_dbg: http://build.chromium.org/p/tryserver.chromium/builders/android_dbg/builds/112629/steps/compile/logs/stdio android_clang_dbg: http://build.chromium.org/p/tryserver.chromium/builders/android_clang_dbg/builds/84167/steps/compile/logs/stdio Since those bits ...
7 years, 2 months ago (2013-10-16 12:10:20 UTC) #41
kevin.petit.not.used.account
Thanks for the logs. The problem in the two first logs seems to be the ...
7 years, 2 months ago (2013-10-16 12:38:37 UTC) #42
kevin.petit.not.used.account
Could someone reopen the issue so I can submit a fix, please?
7 years, 2 months ago (2013-10-16 14:11:19 UTC) #43
robertphillips
reopened
7 years, 2 months ago (2013-10-16 14:12:52 UTC) #44
kevin.petit.not.used.account
Thanks. However, I don't seem to be able to upload to this issue anymore: $ ...
7 years, 2 months ago (2013-10-16 14:29:37 UTC) #45
djsollen
have you run git svn rebase lately?
7 years, 2 months ago (2013-10-16 14:59:40 UTC) #46
kevin.petit.not.used.account
On 2013/10/16 14:59:40, djsollen wrote: > have you run git svn rebase lately? Nope. I've ...
7 years, 2 months ago (2013-10-16 15:10:40 UTC) #47
kevin.petit.not.used.account
I've dug into git_cl.py and understood the problem. I had done a cherry-pick of the ...
7 years, 2 months ago (2013-10-16 15:42:14 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@gmail.com/26627004/83001
7 years, 2 months ago (2013-10-16 15:47:49 UTC) #49
commit-bot: I haz the power
Change committed as 11813
7 years, 2 months ago (2013-10-16 16:24:15 UTC) #50
robertphillips
Reverted in r11833 due to Chromium Android build failures. Please see https://codereview.chromium.org/27304003/.
7 years, 2 months ago (2013-10-17 00:10:10 UTC) #51
kevin.petit.not.used.account
On 2013/10/17 00:10:10, robertphillips wrote: > Reverted in r11833 due to Chromium Android build failures. ...
7 years, 2 months ago (2013-10-17 12:11:30 UTC) #52
robertphillips
reopened
7 years, 2 months ago (2013-10-17 12:19:15 UTC) #53
robertphillips
reopened
7 years, 2 months ago (2013-10-17 12:20:08 UTC) #54
kevin.petit.not.used.account
On 2013/10/17 12:20:08, robertphillips wrote: > reopened Thank you. Patch Set 9 is not pretty ...
7 years, 2 months ago (2013-10-17 14:32:20 UTC) #55
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://skia-tree-status.appspot.com/cq/kevin.petit.arm@gmail.com/26627004/95001
7 years, 2 months ago (2013-10-17 14:42:09 UTC) #56
commit-bot: I haz the power
Change committed as 11843
7 years, 2 months ago (2013-10-17 16:29:38 UTC) #57
djsollen
https://codereview.chromium.org/26627004/diff/95001/src/opts/SkXfermode_opts_arm_neon.cpp File src/opts/SkXfermode_opts_arm_neon.cpp (right): https://codereview.chromium.org/26627004/diff/95001/src/opts/SkXfermode_opts_arm_neon.cpp#newcode583 src/opts/SkXfermode_opts_arm_neon.cpp:583: #if (__GNUC__ == 4) && (__GNUC_MINOR__ > 6) what ...
7 years, 2 months ago (2013-10-17 18:34:17 UTC) #58
kevin.petit.not.used.account
On 2013/10/17 18:34:17, djsollen wrote: > https://codereview.chromium.org/26627004/diff/95001/src/opts/SkXfermode_opts_arm_neon.cpp > File src/opts/SkXfermode_opts_arm_neon.cpp (right): > > https://codereview.chromium.org/26627004/diff/95001/src/opts/SkXfermode_opts_arm_neon.cpp#newcode583 > ...
7 years, 2 months ago (2013-10-18 15:20:28 UTC) #59
djsollen
that sounds good to me.
7 years, 2 months ago (2013-10-18 18:54:04 UTC) #60
robertphillips
7 years, 2 months ago (2013-10-18 18:55:00 UTC) #61
Message was sent while issue was closed.
the DEPS roll seems to have stuck.

Powered by Google App Engine
This is Rietveld 408576698