Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(5704)

Issue 5617058: Implemented a SSE version of blit_lcd16 (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
12 years, 4 months ago by Jin A.Yang
Modified:
12 years, 4 months ago
Reviewers:
TomH, reed1
Base URL:
http://skia.googlecode.com/svn/trunk/
Visibility:
Public.

Description

Implement 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 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+401 lines, -112 lines) Patch
include/core/SkColorPriv.h View 1 2 1 chunk +111 lines, -0 lines 0 comments Download
src/core/SkBlitMask.h View 1 2 chunks +20 lines, -0 lines 0 comments Download
src/core/SkBlitMask_D32.cpp View 1 4 chunks +20 lines, -109 lines 0 comments Download
src/opts/SkBlitRow_opts_SSE2.h View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
src/opts/SkBlitRow_opts_SSE2.cpp View 1 2 2 chunks +224 lines, -2 lines 0 comments Download
src/opts/SkBlitRow_opts_arm.cpp View 1 1 chunk +4 lines, -0 lines 0 comments Download
src/opts/SkBlitRow_opts_none.cpp View 1 1 chunk +5 lines, -1 line 0 comments Download
src/opts/opts_check_SSE2.cpp View 1 1 chunk +12 lines, -0 lines 0 comments Download

Messages

Total messages: 17
Jin A.Yang
12 years, 4 months ago (2012-02-03 07:19:14 UTC) #1
Jin A.Yang
Hi Mike, This is Jin from Intel, I have implemented a sse version of blit_lcd16, ...
12 years, 4 months ago (2012-02-03 07:30:56 UTC) #2
TomH
Thank you very much for writing this. It was on my todo list, but I ...
12 years, 4 months ago (2012-02-03 22:00:37 UTC) #3
Jin A.Yang
http://codereview.appspot.com/5617058/diff/1/bench/TextBench.cpp File bench/TextBench.cpp (right): http://codereview.appspot.com/5617058/diff/1/bench/TextBench.cpp#newcode148 bench/TextBench.cpp:148: static SkBenchmark* Fact33(void* p) { return new TextBench(p, STR, ...
12 years, 4 months ago (2012-02-07 06:39:41 UTC) #4
Jin A.Yang
patch set2
12 years, 4 months ago (2012-02-07 06:40:20 UTC) #5
Jin A.Yang
Thanks for your review, I have made some changes according to your comments and uploaded ...
12 years, 4 months ago (2012-02-07 06:57:31 UTC) #6
reed1
What is the smallest size that doesn't convert to BW? 24? 32? The sizes in ...
12 years, 4 months ago (2012-02-07 13:55:42 UTC) #7
TomH
On 2012/02/07 06:57:31, Jin Yang wrote: > After this change, the performance improvement seems pretty ...
12 years, 4 months ago (2012-02-07 16:47:02 UTC) #8
TomH
Mike, I forgot that rietveld ate my nitty question to you: I don't think the ...
12 years, 4 months ago (2012-02-07 20:32:41 UTC) #9
Jin A.Yang
On 2012/02/07 13:55:42, reed1 wrote: > What is the smallest size that doesn't convert to ...
12 years, 4 months ago (2012-02-08 01:54:08 UTC) #10
Jin A.Yang
On 2012/02/07 16:47:02, TomH wrote: > On 2012/02/07 06:57:31, Jin Yang wrote: > > After ...
12 years, 4 months ago (2012-02-08 02:00:39 UTC) #11
Jin A.Yang
any update?
12 years, 4 months ago (2012-02-10 12:28:27 UTC) #12
TomH
On 2012/02/10 12:28:27, Jin Yang wrote: > any update? We can consistently see 16-point LCD ...
12 years, 4 months ago (2012-02-10 16:17:44 UTC) #13
TomH
I'd like to see my questions at src/opts/SkBlitRow_opts_SSE2.cpp:603 addressed; everything else I can take care ...
12 years, 4 months ago (2012-02-10 18:54:49 UTC) #14
Jin A.Yang
patch set 3
12 years, 4 months ago (2012-02-13 02:50:24 UTC) #15
Jin A.Yang
Thanks for your patient review, I uploaded the patch set3. Please help to commit the ...
12 years, 4 months ago (2012-02-13 02:56:10 UTC) #16
TomH
12 years, 4 months ago (2012-02-14 16:13:11 UTC) #17
This was committed to Skia in r3189.
We expect 25-30% speedup on Windows, 4-7% on Linux (less register pressure on
64b platforms), none on Mac (currently using 32b LCD text path instead of 16b).

Jin, please close this review when you get the opportunity.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b