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

Issue 1317233005: SkPx: new approach to fixed-point SIMD (Closed)

Created:
5 years, 3 months ago by mtklein_C
Modified:
5 years, 1 month ago
Reviewers:
msarett, mtklein
CC:
reviews_skia.org, scroggo
Base URL:
https://skia.googlesource.com/skia.git@master
Target Ref:
refs/heads/master
Project:
skia
Visibility:
Public.

Description

SkPx: new approach to fixed-point SIMD SkPx is like Sk4px, except each platform implementation of SkPx can declare a different sweet spot of N pixels, with extra loads and stores to handle the ragged edge of 0<n<N pixels. In this case, _sse's sweet spot remains 4 pixels. _neon jumps up to 8 so we can now use NEON's transposing loads and stores, and _none is just 1. This makes operations involving alpha considerably more efficient on NEON, as alpha is its own distinct 8x8 bit plane that's easy to toss around. This incorporates a few other improvements I've been wanting: - no requirement that we're dealing with SkPMColor. SkColor works too. - no anonymous namespace hack to differentiate implementations. Codegen and perf look good on Clang/x86-64 and GCC/ARMv7. The NEON code looks very similar to the old NEON code, as intended. No .skp or GM diffs on my laptop. Don't expect any. I intend this to replace Sk4px. Plan after landing: - port SkXfermode_opts.h - port Color32 in SkBlitRow_D32.cpp (and move to SkBlitRow_opts.h like other SkOpts code) - delete all Sk4px-related code - clean up evolutionary dead ends in SkNx (Sk16b, Sk16h, Sk4i, Sk4d, etc.) leaving Sk2f, Sk4f (and Sk2s, Sk4s). - find a machine with AVX2 to work on, write SkPx_avx2.h handling 8 pixels at a time. In the end we'll have Sk4f for float pixels, SkPx for fixed-point pixels. BUG=skia:4117 Committed: https://skia.googlesource.com/skia/+/82c93b45ed6ac0b628adb8375389c202d1f586f9 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;client.skia.compile:Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot Committed: https://skia.googlesource.com/skia/+/a7627dc5cc2bf5d9a95d883d20c40d477ecadadf Committed: https://skia.googlesource.com/skia/+/e8e17cf23d2a036f9b3050bedeb9d3a544221f4c

Patch Set 1 #

Patch Set 2 : enough to run #

Patch Set 3 : comments, cleanup #

Patch Set 4 : _none #

Patch Set 5 : tweak #

Patch Set 6 : note #

Patch Set 7 : draft NEON #

Patch Set 8 : compiling #

Patch Set 9 : fixes #

Total comments: 2

Patch Set 10 : rebase, apis, shifts #

Patch Set 11 : debug/release #

Patch Set 12 : <<16 is not allowed #

Patch Set 13 : shl,shr #

Unified diffs Side-by-side diffs Delta from patch set Stats (+568 lines, -173 lines) Patch
A src/core/SkPx.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +89 lines, -0 lines 0 comments Download
M src/opts/SkBlitMask_opts.h View 1 2 3 4 5 6 7 8 9 1 chunk +40 lines, -173 lines 0 comments Download
A src/opts/SkPx_neon.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +183 lines, -0 lines 0 comments Download
A src/opts/SkPx_none.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +106 lines, -0 lines 0 comments Download
A src/opts/SkPx_sse.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +150 lines, -0 lines 0 comments Download

Messages

Total messages: 42 (18 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317233005/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317233005/140001
5 years, 3 months ago (2015-09-07 20:35:04 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Ubuntu-Clang-x86_64-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-Clang-x86_64-Debug-Trybot/builds/3125)
5 years, 3 months ago (2015-09-07 20:35:45 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317233005/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317233005/160001
5 years, 3 months ago (2015-09-07 20:44:44 UTC) #6
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 3 months ago (2015-09-07 20:49:55 UTC) #8
mtklein_C
5 years, 3 months ago (2015-09-07 21:25:26 UTC) #10
msarett
In general, I like the concept of allowing NEON and SSE implementations to be more ...
5 years, 3 months ago (2015-09-08 15:33:12 UTC) #11
mtklein
https://codereview.chromium.org/1317233005/diff/160001/src/opts/SkBlitMask_opts.h File src/opts/SkBlitMask_opts.h (right): https://codereview.chromium.org/1317233005/diff/160001/src/opts/SkBlitMask_opts.h#newcode40 src/opts/SkBlitMask_opts.h:40: if (color == SK_ColorBLACK) { On 2015/09/08 15:33:12, msarett ...
5 years, 3 months ago (2015-09-08 15:45:27 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317233005/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317233005/160001
5 years, 3 months ago (2015-09-14 19:37:25 UTC) #14
commit-bot: I haz the power
Committed patchset #9 (id:160001) as https://skia.googlesource.com/skia/+/82c93b45ed6ac0b628adb8375389c202d1f586f9
5 years, 3 months ago (2015-09-14 19:43:25 UTC) #15
mtklein_C
A revert of this CL (patchset #9 id:160001) has been created in https://codereview.chromium.org/1336423002/ by mtklein@chromium.org. ...
5 years, 3 months ago (2015-09-14 20:14:08 UTC) #16
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317233005/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317233005/160001
5 years, 1 month ago (2015-11-06 16:20:53 UTC) #18
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot/builds/36)
5 years, 1 month ago (2015-11-06 16:22:25 UTC) #20
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317233005/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317233005/180001
5 years, 1 month ago (2015-11-06 16:38:55 UTC) #22
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot/builds/37)
5 years, 1 month ago (2015-11-06 16:40:04 UTC) #24
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317233005/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317233005/200001
5 years, 1 month ago (2015-11-06 16:49:50 UTC) #26
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot/builds/38)
5 years, 1 month ago (2015-11-06 16:50:50 UTC) #28
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317233005/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317233005/220001
5 years, 1 month ago (2015-11-06 16:57:57 UTC) #30
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 1 month ago (2015-11-06 17:10:11 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317233005/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317233005/220001
5 years, 1 month ago (2015-11-06 17:18:21 UTC) #35
commit-bot: I haz the power
Committed patchset #12 (id:220001) as https://skia.googlesource.com/skia/+/a7627dc5cc2bf5d9a95d883d20c40d477ecadadf
5 years, 1 month ago (2015-11-06 17:19:00 UTC) #36
mtklein
A revert of this CL (patchset #12 id:220001) has been created in https://codereview.chromium.org/1409843005/ by mtklein@google.com. ...
5 years, 1 month ago (2015-11-06 19:33:57 UTC) #37
mtklein
5 years, 1 month ago (2015-11-06 20:00:36 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317233005/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317233005/240001
5 years, 1 month ago (2015-11-06 20:19:21 UTC) #41
commit-bot: I haz the power
5 years, 1 month ago (2015-11-06 22:10:51 UTC) #42
Message was sent while issue was closed.
Committed patchset #13 (id:240001) as
https://skia.googlesource.com/skia/+/e8e17cf23d2a036f9b3050bedeb9d3a544221f4c

Powered by Google App Engine
This is Rietveld 408576698