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

Issue 1245673002: 565 support for SIMD xfermodes (Closed)

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

Description

565 support for SIMD xfermodes This uses the most basic approach possible: - to load an Sk4px from 565, convert to SkPMColors on the stack serially then load those SkPMColors. - to store an Sk4px to 565, store to SkPMColors on the stack then convert to 565 serially. Clearly, we can optimize these loads and stores. That's a TODO. The code using SkPMFloat is the same idea but a little more long-term viable, as we're only operating on one pixel at a time anyway. We could probably write 565 <-> SkPMFloat methods, but I'd rather not until it's really compelling. The speedups are varied but similar across SSE and NEON: a few uninteresting, many 50% faster, some 2x faster, and SoftLight ~4x faster. This will cause minor GM diffs, but I don't think any layout test changes. BUG=skia: Committed: https://skia.googlesource.com/skia/+/942930dcaa51f66d82cdaf46ae62efebd16c8cd0 Committed: https://skia.googlesource.com/skia/+/860dcaa2ddfdadc050af4f943a84a9d499315066 Committed: https://skia.googlesource.com/skia/+/ced1585149d4ac8a68efd80e11dbc23bca6620d4

Patch Set 1 #

Patch Set 2 : Refactor #

Patch Set 3 : no need to templatize Src #

Patch Set 4 : rebase, merge #

Patch Set 5 : fix typo #

Unified diffs Side-by-side diffs Delta from patch set Stats (+230 lines, -15 lines) Patch
M src/core/Sk4px.h View 1 2 3 5 chunks +15 lines, -6 lines 0 comments Download
M src/core/Sk4pxXfermode.h View 1 2 3 2 chunks +38 lines, -9 lines 0 comments Download
M src/opts/Sk4px_NEON.h View 1 2 3 4 1 chunk +71 lines, -0 lines 0 comments Download
M src/opts/Sk4px_SSE2.h View 1 2 3 1 chunk +75 lines, -0 lines 0 comments Download
M src/opts/Sk4px_none.h View 1 2 3 1 chunk +31 lines, -0 lines 0 comments Download

Messages

Total messages: 28 (9 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/1245673002/40001
5 years, 5 months ago (2015-07-20 16:52:23 UTC) #2
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 5 months ago (2015-07-20 17:08:10 UTC) #4
mtklein_C
I was planning on doing this all in one go, hooking in 565 with fully ...
5 years, 5 months ago (2015-07-20 17:15:12 UTC) #6
msarett
lgtm I don't want to hold you up. I plan to take a closer look ...
5 years, 5 months ago (2015-07-20 17:34:00 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1245673002/40001
5 years, 5 months ago (2015-07-20 17:34:54 UTC) #9
commit-bot: I haz the power
Committed patchset #3 (id:40001) as https://skia.googlesource.com/skia/+/942930dcaa51f66d82cdaf46ae62efebd16c8cd0
5 years, 5 months ago (2015-07-20 17:35:33 UTC) #10
mtklein
A revert of this CL (patchset #3 id:40001) has been created in https://codereview.chromium.org/1242973004/ by mtklein@google.com. ...
5 years, 5 months ago (2015-07-21 12:02:29 UTC) #11
msarett
This looks cool. As you said, it's the setup step. Does a sizes regression just ...
5 years, 5 months ago (2015-07-21 13:00:24 UTC) #12
mtklein
On 2015/07/21 13:00:24, msarett wrote: > This looks cool. As you said, it's the setup ...
5 years, 5 months ago (2015-07-21 13:09:43 UTC) #13
msarett
Gotcha agreed. I'm looking through it now :).
5 years, 5 months ago (2015-07-21 13:22:48 UTC) #14
mtklein
Going to try this again Matt. I've merged the two 565 CLs together here and ...
5 years, 5 months ago (2015-07-21 21:00:41 UTC) #15
msarett
Looks familiar :) lgtm
5 years, 5 months ago (2015-07-21 21:06:35 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/1245673002/60001
5 years, 5 months ago (2015-07-21 21:15:27 UTC) #18
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 5 months ago (2015-07-21 21:48:08 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1245673002/60001
5 years, 5 months ago (2015-07-22 00:23:09 UTC) #22
commit-bot: I haz the power
Committed patchset #4 (id:60001) as https://skia.googlesource.com/skia/+/860dcaa2ddfdadc050af4f943a84a9d499315066
5 years, 5 months ago (2015-07-22 00:23:42 UTC) #23
mtklein
A revert of this CL (patchset #4 id:60001) has been created in https://codereview.chromium.org/1248893004/ by mtklein@google.com. ...
5 years, 5 months ago (2015-07-22 01:34:22 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1245673002/80001
5 years, 5 months ago (2015-07-22 17:25:27 UTC) #27
commit-bot: I haz the power
5 years, 5 months ago (2015-07-22 17:52:56 UTC) #28
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as
https://skia.googlesource.com/skia/+/ced1585149d4ac8a68efd80e11dbc23bca6620d4

Powered by Google App Engine
This is Rietveld 408576698