DescriptionThis is the follow up for SSE version of ClampX_ClampY_{no}filter_scale.
With this SSE patch, drawBitmap with rotation can boost about 20+%. Below is some benchmark data:
Original version:
out\Release\bench.exe -config 8888 -match bitmap -rotate -f
orceFilter 0 -repeat 20
skia bench: alpha=0xFF antialias=1 filter=0 rotate=1 scale=0 clip=0 dither=defau
lt strokeWidth=none scalar=float system=WIN32
running bench [640 480] bitmap_8888_update 8888: cmsecs = 52.26
running bench [640 480] bitmap_8888_update_volatile 8888: cmsecs = 49.92
running bench [640 480] bitmap_index8 8888: cmsecs = 54.60
running bench [640 480] bitmap_index8_A 8888: cmsecs = 67.86
running bench [640 480] bitmap_4444 8888: cmsecs = 66.30
running bench [640 480] bitmap_4444_A 8888: cmsecs = 82.68
running bench [640 480] bitmap_565 8888: cmsecs = 72.54
running bench [640 480] bitmap_8888 8888: cmsecs = 50.70
running bench [640 480] bitmap_8888_A 8888: cmsecs = 67.08
out\Release\bench.exe -config 8888 -match bitmap -rotate -f
orceFilter 1 -repeat 20
skia bench: alpha=0xFF antialias=1 filter=1 rotate=1 scale=0 clip=0 dither=defau
lt strokeWidth=none scalar=float system=WIN32
running bench [640 480] bitmap_8888_update 8888: cmsecs = 155.22
running bench [640 480] bitmap_8888_update_volatile 8888: cmsecs = 153.66
running bench [640 480] bitmap_index8 8888: cmsecs = 173.16
running bench [640 480] bitmap_index8_A 8888: cmsecs = 190.32
running bench [640 480] bitmap_4444 8888: cmsecs = 141.18
running bench [640 480] bitmap_4444_A 8888: cmsecs = 163.80
running bench [640 480] bitmap_565 8888: cmsecs = 145.86
running bench [640 480] bitmap_8888 8888: cmsecs = 153.66
running bench [640 480] bitmap_8888_A 8888: cmsecs = 173.94
The SSE2 version:
out\Release\bench.exe -config 8888 -match bitmap -rotate -f
orceFilter 0 -repeat 20
skia bench: alpha=0xFF antialias=1 filter=0 rotate=1 scale=0 clip=0 dither=defau
lt strokeWidth=none scalar=float system=WIN32
running bench [640 480] bitmap_8888_update 8888: cmsecs = 39.78
running bench [640 480] bitmap_8888_update_volatile 8888: cmsecs = 41.34
running bench [640 480] bitmap_index8 8888: cmsecs = 44.46
running bench [640 480] bitmap_index8_A 8888: cmsecs = 60.06
running bench [640 480] bitmap_4444 8888: cmsecs = 60.06
running bench [640 480] bitmap_4444_A 8888: cmsecs = 73.32
running bench [640 480] bitmap_565 8888: cmsecs = 67.08
running bench [640 480] bitmap_8888 8888: cmsecs = 43.68
running bench [640 480] bitmap_8888_A 8888: cmsecs = 58.50
out\Release\bench.exe -config 8888 -match bitmap -rotate -f
orceFilter 1 -repeat 20
skia bench: alpha=0xFF antialias=1 filter=1 rotate=1 scale=0 clip=0 dither=defau
lt strokeWidth=none scalar=float system=WIN32
running bench [640 480] bitmap_8888_update 8888: cmsecs = 122.46
running bench [640 480] bitmap_8888_update_volatile 8888: cmsecs = 121.68
running bench [640 480] bitmap_index8 8888: cmsecs = 136.50
running bench [640 480] bitmap_index8_A 8888: cmsecs = 156.00
running bench [640 480] bitmap_4444 8888: cmsecs = 113.88
running bench [640 480] bitmap_4444_A 8888: cmsecs = 126.36
running bench [640 480] bitmap_565 8888: cmsecs = 113.10
running bench [640 480] bitmap_8888 8888: cmsecs = 118.56
running bench [640 480] bitmap_8888_A 8888: cmsecs = 138.84
Patch Set 1 #
MessagesTotal messages: 5
|