Descriptionthis improves the skia performance on SSE2-supporting platform. (please refer to below issues)
Issue 2765043: SSE2 optimizations for 32bit Color operation
Issue 171055: More SSE2ification
Issue 157141: More SSE2ification
Issue 150060: minor tweaks to SSE2 code for -fPIC
Issue 144072: SSE2 optimizations for 32bit blending blitters
This CL implements SSE2 optimizations for the ARGB32 blitmask. Like above issues, it uses CPUID to detect for SSE2 and changes the platform procs at
runtime as well.
blitmask is very common operations for blend source image to a destination background. With the workload http://www.feedtank.com/labs/html_canvas/, SkARGB32_Blitter::blitMask() occupies (10-12)% cpu cycles of chrome (the performance data is from oprofile in Meego).
this patch just focus on SkARGB32_Blitter, but it is extendable to other Blitter.
Additional, this CL has passed the skia bench & tests validation, the result is pretty good. We also apply this CL to the latest chromium, and re-run http://www.feedtank.com/labs/html_canvas/, the performance is improved by almost 6~8%.
Patch Set 1 #Patch Set 2 : updated version to implement a completed framework for blitmask #Patch Set 3 : new patch for 2nd review #
Total comments: 1
Patch Set 4 : upload a new patch diff from the recent code base, thanks #Patch Set 5 : Minor changes to pass "full" rowBytes to the proc. Please provide your comments, thanks Reed #
MessagesTotal messages: 13
|