DescriptionPlus xfermode using Sk4px.
Xfermode_Plus runs 4-5x faster.
We expect mixed_xfermodes to have a small diff. This is because kFoldCoverageIntoSrcAlpha was incorrectly set to true.
This implementation handily beats the Sk4f impl, the portable impl, and the existing SSE2 impl. Reading the SkXfermodes_opts_SSE2.cpp file, I'm pretty confident that we'll be able to beat all SSE2 impls.
I believe this impl will beat or match the existing NEON impl too, but that may not be true for more complicated xfermodes. They can take advantage of transposing ARGBARGB... to AAAARRRR.... cheaply and I haven't figured out an abstraction for that yet that doesn't screw SSE.
Adds:
- MapDstSrc() to Sk4px
- saturatedAdd() to SkNi (only implemented as far as it's used).
- div255Narrow()
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/6cbf18c70bf99f58b2bb1c49cdf8d41be561fee4
Patch Set 1 #Patch Set 2 : update assert #Patch Set 3 : aa too #Patch Set 4 : Can't actually fold coverage and alpha for Plus. #Patch Set 5 : remove idea #Patch Set 6 : split div255Narrow into div255RoundNarrow and div255TruncNarrow #Patch Set 7 : modulate too #Patch Set 8 : screen #Patch Set 9 : guard #
Messages
Total messages: 33 (15 generated)
|