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

Issue 1532613002: AVX 2 SrcOver blits: color32, blitmask. (Closed)

Created:
5 years ago by mtklein_C
Modified:
4 years, 11 months 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

AVX 2 SrcOver blits: color32, blitmask. As a follow up to the SSE 4.1 CL, this should look pretty familiar. I've made some organizational changes around how we load, store, pack, and unpack data that I think makes things clearer and more orthogonal, and it'll make it easier to try out a pmaddubsw lerp. I have backported these changes to the SSE 4.1 code, and I hope that I can actually get a lot of this code templated for sharing between the two later. Perf changes (relative to SSE 4.1): Xfermode_SrcOver: 1650 -> 1180 (0.71x) // large opaque blit Xfermode_SrcOver_aa: 1794 -> 1653 (0.92x) // large opaque + small transparent text_16_AA_{FF,BK,WT}: 1.72 -> 1.59 (0.92x) // small opaque blit text_16_AA_88: 1.83 -> 1.77 (0.97x) // small transparent blit This should be a big throughout win, and a small latency win. This should all be pixel-exact to the previous SSE 4.1 code. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1532613002 Committed: https://skia.googlesource.com/skia/+/5d2117015eb271e09faf4a7ddd89093c9d618a36 TODO: - x86_64-cros-linux-gnu-g++ does not seem to support AVX2, despite accepting the -mavx2 command line option: error: '__m256i' does not name a type (and many others) - we don't appear to be passing /arch:avx2 correctly to MSVC, producing this warning-as-error: warning C4752: found Intel(R) Advanced Vector Extensions; consider using /arch:AVX CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Debug-CrOS_Link-Trybot,Build-Win-MSVC-x86_64-Release-Trybot

Patch Set 1 #

Patch Set 2 : 8 at a time #

Patch Set 3 : hacking #

Patch Set 4 : fix #

Patch Set 5 : tighter #

Patch Set 6 : separate out packing strategy #

Patch Set 7 : TODO #

Patch Set 8 : small stuff #

Total comments: 4

Patch Set 9 : mul255 #

Patch Set 10 : update SSE4.1 to match new style #

Patch Set 11 : factoring #

Patch Set 12 : replicate_coverage #

Patch Set 13 : tiny tweak #

Patch Set 14 : streamline n<4 #

Patch Set 15 : consistency #

Patch Set 16 : inline #

Patch Set 17 : dup #

Patch Set 18 : ah, struct #

Patch Set 19 : more consistent like this #

Patch Set 20 : turn avx2 back on #

Patch Set 21 : branch-free tail coverage #

Patch Set 22 : formatting tweaks #

Patch Set 23 : undo buggy branch-free tail code #

Patch Set 24 : i'd have sworn other_cflags used to work #

Unified diffs Side-by-side diffs Delta from patch set Stats (+366 lines, -91 lines) Patch
M gyp/opts.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 chunks +2 lines, -2 lines 0 comments Download
M gyp/opts.gypi View 1 chunk +1 line, -1 line 0 comments Download
M src/core/SkOpts.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +1 line, -1 line 0 comments Download
A src/opts/SkOpts_avx2.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +237 lines, -0 lines 0 comments Download
M src/opts/SkOpts_sse41.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 5 chunks +125 lines, -87 lines 0 comments Download

Messages

Total messages: 92 (50 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/1532613002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/80001
5 years ago (2015-12-16 23:00:07 UTC) #3
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Ubuntu-GCC-x86_64-Release-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-x86_64-Release-Trybot/builds/4886)
5 years ago (2015-12-16 23:01:01 UTC) #5
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/100001
5 years ago (2015-12-17 16:11:59 UTC) #7
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/120001
5 years ago (2015-12-17 16:33:56 UTC) #10
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-17 16:48:27 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/1532613002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/140001
5 years ago (2015-12-17 16:54:19 UTC) #16
mtklein_C
5 years ago (2015-12-17 16:55:52 UTC) #18
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-17 17:13:28 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/1532613002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/140001
5 years ago (2015-12-17 18:19:57 UTC) #24
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-17 18:23:45 UTC) #26
herb_g
https://codereview.chromium.org/1532613002/diff/140001/src/opts/SkOpts_avx2.cpp File src/opts/SkOpts_avx2.cpp (right): https://codereview.chromium.org/1532613002/diff/140001/src/opts/SkOpts_avx2.cpp#newcode181 src/opts/SkOpts_avx2.cpp:181: s_255_128 = div255_part1(_mm256_mullo_epi16(s, _mm256_set1_epi16(255))), Instead of _mm256_mullo_epi16, could we ...
5 years ago (2015-12-17 21:37:26 UTC) #27
mtklein
https://codereview.chromium.org/1532613002/diff/140001/src/opts/SkOpts_avx2.cpp File src/opts/SkOpts_avx2.cpp (right): https://codereview.chromium.org/1532613002/diff/140001/src/opts/SkOpts_avx2.cpp#newcode181 src/opts/SkOpts_avx2.cpp:181: s_255_128 = div255_part1(_mm256_mullo_epi16(s, _mm256_set1_epi16(255))), On 2015/12/17 at 21:37:26, herb_g ...
5 years ago (2015-12-18 14:36:06 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/1532613002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/160001
5 years ago (2015-12-18 14:36:20 UTC) #30
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-18 14:50:52 UTC) #32
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/200001
4 years, 11 months ago (2015-12-30 20:02:06 UTC) #37
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/220001
4 years, 11 months ago (2015-12-30 20:09:37 UTC) #39
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2015-12-30 20:37:18 UTC) #41
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/240001
4 years, 11 months ago (2015-12-30 21:52:36 UTC) #43
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/260001
4 years, 11 months ago (2015-12-30 22:26:14 UTC) #45
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/5011)
4 years, 11 months ago (2015-12-30 22:28:21 UTC) #47
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/320001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/320001
4 years, 11 months ago (2015-12-30 22:32:20 UTC) #49
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/5013)
4 years, 11 months ago (2015-12-30 22:34:22 UTC) #51
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/340001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/340001
4 years, 11 months ago (2015-12-31 01:39:37 UTC) #53
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/360001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/360001
4 years, 11 months ago (2015-12-31 01:43:48 UTC) #55
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/380001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/380001
4 years, 11 months ago (2015-12-31 01:56:08 UTC) #57
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2015-12-31 02:10:41 UTC) #59
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/420001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/420001
4 years, 11 months ago (2015-12-31 02:28:32 UTC) #61
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2015-12-31 02:43:38 UTC) #63
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/360002 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/360002
4 years, 11 months ago (2015-12-31 07:27:47 UTC) #65
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2015-12-31 07:42:14 UTC) #67
herb_g
lgtm
4 years, 11 months ago (2016-01-22 18:58:25 UTC) #68
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/360002 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/360002
4 years, 11 months ago (2016-01-22 20:00:14 UTC) #70
commit-bot: I haz the power
Try jobs failed on following builders: Test-Mac10.8-Clang-MacMini4.1-CPU-SSE4-x86_64-Release-Trybot on client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Mac10.8-Clang-MacMini4.1-CPU-SSE4-x86_64-Release-Trybot/builds/17)
4 years, 11 months ago (2016-01-22 20:06:04 UTC) #72
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/360002 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/360002
4 years, 11 months ago (2016-01-22 20:08:35 UTC) #74
commit-bot: I haz the power
Try jobs failed on following builders: Test-Mac10.8-Clang-MacMini4.1-CPU-SSE4-x86_64-Release-Trybot on client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Mac10.8-Clang-MacMini4.1-CPU-SSE4-x86_64-Release-Trybot/builds/19)
4 years, 11 months ago (2016-01-22 20:11:53 UTC) #76
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/360002 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/360002
4 years, 11 months ago (2016-01-25 14:08:25 UTC) #78
commit-bot: I haz the power
Try jobs failed on following builders: Build-Mac10.8-Clang-x86_64-Release-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Mac10.8-Clang-x86_64-Release-Trybot/builds/7941)
4 years, 11 months ago (2016-01-25 14:09:50 UTC) #80
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/450001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/450001
4 years, 11 months ago (2016-01-25 15:14:40 UTC) #83
commit-bot: I haz the power
Try jobs failed on following builders: Test-Mac10.8-Clang-MacMini4.1-CPU-SSE4-x86_64-Release-Trybot on client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Mac10.8-Clang-MacMini4.1-CPU-SSE4-x86_64-Release-Trybot/builds/23)
4 years, 11 months ago (2016-01-25 15:24:00 UTC) #85
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1532613002/450001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1532613002/450001
4 years, 11 months ago (2016-01-25 16:36:55 UTC) #88
commit-bot: I haz the power
Committed patchset #24 (id:450001) as https://skia.googlesource.com/skia/+/5d2117015eb271e09faf4a7ddd89093c9d618a36
4 years, 11 months ago (2016-01-25 16:37:34 UTC) #90
msarett
4 years, 11 months ago (2016-01-25 16:54:35 UTC) #91
Message was sent while issue was closed.
A revert of this CL (patchset #24 id:450001) has been created in
https://codereview.chromium.org/1632713002/ by msarett@google.com.

The reason for reverting is: Bot failures.

Powered by Google App Engine
This is Rietveld 408576698