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

Issue 1526883004: SSE 4.1 SrcOver blits: color32, blitmask. (Closed)

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

Description

SSE 4.1 SrcOver blits: color32, blitmask. This is mainly warmup for an AVX2 version. The machine I'm typing this on just doesn't support AVX2. This strategy should translate easily down to SSSE3 and SSE2. Xfermode_SrcOver: 2.73ms -> 2.62ms (0.96x) (That's Color32.) Xfermode_SrcOver_aa: 3.48ms -> 3.09ms (0.89x) (That's BlitMask_D32_A8.) AA text blits (text_16_AA_{88,FF,WT,BK}) show speedups in the range of 5 to 20%. Unlike previous versions of this code, all the div255() are exactly (x+127)/255. This won't fix any major bugs, but it does correct our bias in the middle. There will be many diffs, all minor. I've punted for now on pmaddubsw for lerping. I do intend to try that, but I want this (relatively simple) code as my basis for comparison. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1526883004 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Committed: https://skia.googlesource.com/skia/+/78e0aef610d762009ef7f4eb51a83771443be665

Patch Set 1 #

Patch Set 2 : blitmask_d32_a8 #

Patch Set 3 : swizzle #

Patch Set 4 : more shuffles #

Patch Set 5 : comments etc #

Patch Set 6 : tweaks #

Patch Set 7 : oops #

Patch Set 8 : should technically be next2 #

Patch Set 9 : very minor #

Unified diffs Side-by-side diffs Delta from patch set Stats (+173 lines, -0 lines) Patch
M src/opts/SkOpts_sse41.cpp View 1 2 3 4 5 6 7 8 1 chunk +173 lines, -0 lines 0 comments Download

Messages

Total messages: 28 (20 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/1526883004/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1526883004/120001
5 years ago (2015-12-15 19:12:21 UTC) #7
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-15 19:31:37 UTC) #11
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1526883004/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1526883004/160001
5 years ago (2015-12-15 19:55:19 UTC) #13
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-15 20:12:36 UTC) #20
mtklein_C
This is a start at capitalizing on all that hacking we did the last couple ...
5 years ago (2015-12-15 20:13:06 UTC) #22
herb_g
lgtm
5 years ago (2015-12-16 19:08:50 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1526883004/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1526883004/160001
5 years ago (2015-12-16 19:15:22 UTC) #26
commit-bot: I haz the power
5 years ago (2015-12-16 19:16:01 UTC) #28
Message was sent while issue was closed.
Committed patchset #9 (id:160001) as
https://skia.googlesource.com/skia/+/78e0aef610d762009ef7f4eb51a83771443be665

Powered by Google App Engine
This is Rietveld 408576698