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

Issue 1196713004: Implement four more xfermodes with Sk4px. (Closed)

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

Description

Implement four more xfermodes with Sk4px. HardLight, Overlay, Darken, and Lighten are all ~2x faster with SSE, ~25% faster with NEON. This covers all previously-implemented NEON xfermodes. 3 previous SSE xfermodes remain. Those need division and sqrt, so I'm planning on using SkPMFloat for them. It'll help the readability and NEON speed if I move that into [0,1] space first. The main new concept here is c.thenElse(t,e), which behaves like (c ? t : e) except, of course, both t and e are evaluated. This allows us to emulate conditionals with vectors. This also removes the concept of SkNb. Instead of a standalone bool vector, each SkNi or SkNf will just return their own types for comparisons. Turns out to be a lot more manageable this way. BUG=skia: Committed: https://skia.googlesource.com/skia/+/b9d4163bebab0f5639f9c5928bb5fc15f472dddc CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot Committed: https://skia.googlesource.com/skia/+/b5e861185a69b3e47d1c1bf622fd3f83e5f13898

Patch Set 1 #

Patch Set 2 : NEON support #

Patch Set 3 : fix operator< #

Patch Set 4 : better precision #

Patch Set 5 : todo #

Patch Set 6 : rebase #

Patch Set 7 : Darken, Lighten #

Patch Set 8 : add define #

Patch Set 9 : partial work on Dodge and Burn. Really wants 1-based SkPMFloat first. #

Patch Set 10 : revert back on only Sk4px modes #

Patch Set 11 : tweaks #

Patch Set 12 : portable code, removing SkNb #

Patch Set 13 : fix anyTrue #

Patch Set 14 : win build fix #

Patch Set 15 : try again? #

Patch Set 16 : update to SK_SUPPORT_LEGACY_XFERMODES #

Patch Set 17 : manually cast for missing 64-bit vreinterprets #

Unified diffs Side-by-side diffs Delta from patch set Stats (+199 lines, -178 lines) Patch
M src/core/Sk4px.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M src/core/Sk4pxXfermode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +51 lines, -9 lines 0 comments Download
M src/core/SkNx.h View 1 2 3 4 5 6 7 8 9 10 11 12 9 chunks +43 lines, -49 lines 0 comments Download
M src/opts/SkNx_neon.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 9 chunks +60 lines, -60 lines 0 comments Download
M src/opts/SkNx_sse.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 10 chunks +37 lines, -57 lines 0 comments Download
M src/opts/SkXfermode_opts_SSE2.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +5 lines, -3 lines 0 comments Download
M src/opts/SkXfermode_opts_arm_neon.cpp View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 27 (12 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/1196713004/230001
5 years, 6 months ago (2015-06-24 19:08:26 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Win-MSVC-x86-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86-Debug-Trybot/builds/1697) Build-Win-MSVC-x86_64-Debug-Trybot on ...
5 years, 6 months ago (2015-06-24 19:11:48 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/1196713004/250001
5 years, 6 months ago (2015-06-24 19:12:19 UTC) #6
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Win-MSVC-x86-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86-Debug-Trybot/builds/1699) Build-Win-MSVC-x86_64-Debug-Trybot on ...
5 years, 6 months ago (2015-06-24 19:15:32 UTC) #8
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1196713004/270001
5 years, 6 months ago (2015-06-24 19:20:36 UTC) #10
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 6 months ago (2015-06-24 19:26:24 UTC) #12
mtklein_C
5 years, 6 months ago (2015-06-24 19:27:55 UTC) #14
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1196713004/290001
5 years, 6 months ago (2015-06-24 19:57:58 UTC) #16
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 6 months ago (2015-06-24 20:03:42 UTC) #18
reed1
lgtm
5 years, 6 months ago (2015-06-24 21:26:04 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1196713004/290001
5 years, 6 months ago (2015-06-24 21:27:06 UTC) #21
commit-bot: I haz the power
Committed patchset #16 (id:290001) as https://skia.googlesource.com/skia/+/b9d4163bebab0f5639f9c5928bb5fc15f472dddc
5 years, 6 months ago (2015-06-24 21:27:40 UTC) #22
mtklein
A revert of this CL (patchset #16 id:290001) has been created in https://codereview.chromium.org/1205703008/ by mtklein@google.com. ...
5 years, 6 months ago (2015-06-24 21:30:18 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1196713004/310001
5 years, 6 months ago (2015-06-24 22:01:59 UTC) #26
commit-bot: I haz the power
5 years, 6 months ago (2015-06-24 22:18:43 UTC) #27
Message was sent while issue was closed.
Committed patchset #17 (id:310001) as
https://skia.googlesource.com/skia/+/b5e861185a69b3e47d1c1bf622fd3f83e5f13898

Powered by Google App Engine
This is Rietveld 408576698