DescriptionImplement a SSE version of blit_lcd16. In order to use the original version
for pixels which are not aligned in SSE version, move the original version to
SkColorPriv.h
Add 3 LCD bench cases to test the performance. Use text size larget to 48, then we can use
SSE mostly.
The 3 bench cases show good performance improvement:
original version of blit_lcd16:
out\Release\bench.exe -config 8888 -match text_48 -repeat 200
skia bench: alpha=0xFF antialias=1 filter=0 rotate=0 scale=0 clip=0 dither=defau
lt strokeWidth=none scalar=float system=WIN32
running bench [640 480] text_48_LCD_88 8888: cmsecs = 31.67
running bench [640 480] text_48_LCD_FF 8888: cmsecs = 26.52
running bench [640 480] text_48_LCD_BK 8888: cmsecs = 26.68
SSE version of blit_lcd16:
out\Release\bench.exe -config 8888 -match text_48 -repeat 200
skia bench: alpha=0xFF antialias=1 filter=0 rotate=0 scale=0 clip=0 dither=defau
lt strokeWidth=none scalar=float system=WIN32
running bench [640 480] text_48_LCD_88 8888: cmsecs = 20.12
running bench [640 480] text_48_LCD_FF 8888: cmsecs = 18.25
running bench [640 480] text_48_LCD_BK 8888: cmsecs = 18.49
From the data, we can see SSE version has about 30% performance improvement:
text_48_LCD_88 36.46%
text_48_LCD_FF 31.18%
text_48_LCD_BK 30.69%
BUG=451
Patch Set 1 #
Total comments: 30
Patch Set 2 : patch set2 #
Total comments: 2
Patch Set 3 : patch set 3 #
MessagesTotal messages: 17
|