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

Issue 1432903002: float xfermodes (burn, dodge, softlight) in Sk8f, possibly using AVX. (Closed)

Created:
5 years, 1 month ago by mtklein_C
Modified:
5 years, 1 month 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

float xfermodes (burn, dodge, softlight) in Sk8f, possibly using AVX. Xfermode_ColorDodge_aa 10.3ms -> 7.85ms 0.76x Xfermode_SoftLight_aa 13.8ms -> 10.2ms 0.74x Xfermode_ColorBurn_aa 10.7ms -> 7.82ms 0.73x Xfermode_SoftLight 33.6ms -> 23.2ms 0.69x Xfermode_ColorDodge 25ms -> 16.5ms 0.66x Xfermode_ColorBurn 26.1ms -> 16.6ms 0.63x Ought to be no pixel diffs: https://gold.skia.org/search2?issue=1432903002&unt=true&query=source_type%3Dgm&master=false Incidental stuff: I made the SkNx(T) constructors implicit to make writing math expressions simpler. This allows us to write expressions like Sk4f v; ... v = v*4; rather than Sk4f v; ... v = v * Sk4f(4); As written it only works when the constant is on the right-hand side, so expressions like `(Sk4f(1) - da)` have to stay for now. I plan on following up with a CL that lets those become `(1 - da)` too. BUG=skia:4117 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Committed: https://skia.googlesource.com/skia/+/084db25d47dbad3ffbd7d15c04b63d344b351f90

Patch Set 1 #

Patch Set 2 : 1.0f/255 #

Total comments: 14
Unified diffs Side-by-side diffs Delta from patch set Stats (+196 lines, -82 lines) Patch
M gyp/opts.gypi View 1 chunk +1 line, -1 line 0 comments Download
M src/core/SkNx.h View 6 chunks +9 lines, -6 lines 0 comments Download
M src/core/SkOpts.cpp View 1 chunk +1 line, -1 line 0 comments Download
A src/opts/SkNx_avx.h View 1 chunk +90 lines, -0 lines 3 comments Download
M src/opts/SkNx_neon.h View 5 chunks +5 lines, -5 lines 0 comments Download
M src/opts/SkNx_sse.h View 6 chunks +6 lines, -6 lines 0 comments Download
A src/opts/SkOpts_avx.cpp View 1 chunk +17 lines, -0 lines 0 comments Download
M src/opts/SkXfermode_opts.h View 1 3 chunks +67 lines, -63 lines 11 comments Download

Messages

Total messages: 25 (13 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/1432903002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1432903002/1
5 years, 1 month ago (2015-11-09 19:11:52 UTC) #4
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Win-MSVC-x86_64-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86_64-Debug-Trybot/builds/4179)
5 years, 1 month ago (2015-11-09 19:13:52 UTC) #6
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1432903002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1432903002/20001
5 years, 1 month ago (2015-11-09 19:16:43 UTC) #9
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 1 month ago (2015-11-09 19:27:32 UTC) #12
mtklein_C
5 years, 1 month ago (2015-11-09 19:42:53 UTC) #15
msarett
"I made the SkNx(T) constructors implicit to make writing math expressions simpler. This allows us ...
5 years, 1 month ago (2015-11-09 23:25:06 UTC) #16
mtklein
On 2015/11/09 at 23:25:06, msarett wrote: > "I made the SkNx(T) constructors implicit to make ...
5 years, 1 month ago (2015-11-10 00:06:56 UTC) #17
mtklein
https://codereview.chromium.org/1432903002/diff/20001/src/opts/SkNx_avx.h File src/opts/SkNx_avx.h (right): https://codereview.chromium.org/1432903002/diff/20001/src/opts/SkNx_avx.h#newcode32 src/opts/SkNx_avx.h:32: __m256i fix32 = _mm256_insertf128_si256(_mm256_castsi128_si256(lo32), hi32, 1); On 2015/11/09 at ...
5 years, 1 month ago (2015-11-10 00:22:05 UTC) #19
msarett
lgtm https://codereview.chromium.org/1432903002/diff/20001/src/opts/SkNx_avx.h File src/opts/SkNx_avx.h (right): https://codereview.chromium.org/1432903002/diff/20001/src/opts/SkNx_avx.h#newcode32 src/opts/SkNx_avx.h:32: __m256i fix32 = _mm256_insertf128_si256(_mm256_castsi128_si256(lo32), hi32, 1); On 2015/11/10 ...
5 years, 1 month ago (2015-11-10 14:54:16 UTC) #20
mtklein
https://codereview.chromium.org/1432903002/diff/20001/src/opts/SkXfermode_opts.h File src/opts/SkXfermode_opts.h (right): https://codereview.chromium.org/1432903002/diff/20001/src/opts/SkXfermode_opts.h#newcode126 src/opts/SkXfermode_opts.h:126: static inline Sk8f alphas(const Sk8f& f) { return SkNx_shuffle<3,3,3,3,7,7,7,7>(f); ...
5 years, 1 month ago (2015-11-11 19:27:13 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1432903002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1432903002/20001
5 years, 1 month ago (2015-11-11 19:27:39 UTC) #24
commit-bot: I haz the power
5 years, 1 month ago (2015-11-11 19:39:13 UTC) #25
Message was sent while issue was closed.
Committed patchset #2 (id:20001) as
https://skia.googlesource.com/skia/+/084db25d47dbad3ffbd7d15c04b63d344b351f90

Powered by Google App Engine
This is Rietveld 408576698