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

Issue 1148042: ARM Neon optimization for S32A_Opaque_BlitRow32

Can't Edit
Can't Publish+Mail
Start Review
Created:
14 years, 6 months ago by XinQi
Modified:
14 years, 4 months ago
Reviewers:
reed, ray.essick, agl
Base URL:
http://skia.googlecode.com/svn/trunk/src
Visibility:
Public.

Description

Implementing S32A_Opaque_BlitRow32 using v7 neon instructions. Taking the advantage of 16 channels of each QualWord register. Also using the software pipelining to scatter the loads/stores among vector operations. Got roughly 70% improvements on simulation environments. First-time contributor, please let me know of anything missing. And other reviewers needed.

Patch Set 1 #

Patch Set 2 : Update license in header #

Total comments: 3

Patch Set 3 : Update patch upon comments #

Patch Set 4 : Make S32A_Opaque_BlitRow32_neon2 bit exact as S32A_Opaque_BlitRow32_neon #

Unified diffs Side-by-side diffs Delta from patch set Stats (+284 lines, -1 line) Patch
opts/S32A_Opaque_BlitRow32_neon2.S View 1 2 3 1 chunk +280 lines, -0 lines 0 comments Download
opts/SkBlitRow_opts_arm.cpp View 1 2 3 2 chunks +4 lines, -1 line 0 comments Download

Messages

Total messages: 18
XinQi
14 years, 6 months ago (2010-05-10 19:41:23 UTC) #1
agl
The .S file appears to have a BSD like license at the top of it. ...
14 years, 6 months ago (2010-05-12 21:25:29 UTC) #2
reed
Skia has compliance and performance tests that can be run using the proposed patch, in ...
14 years, 6 months ago (2010-05-14 15:06:23 UTC) #3
XinQi
Hi Mike, We've used the following methods to verify the patch: 1. I printed out ...
14 years, 5 months ago (2010-05-17 19:32:44 UTC) #4
XinQi
Update license in header
14 years, 5 months ago (2010-06-01 16:58:49 UTC) #5
agl
http://codereview.appspot.com/1148042/diff/6001/7001 File opts/S32A_Opaque_BlitRow32_neon2.S (right): http://codereview.appspot.com/1148042/diff/6001/7001#newcode18 opts/S32A_Opaque_BlitRow32_neon2.S:18: .fpu neon Assembly code always needs a stonking lot ...
14 years, 5 months ago (2010-06-03 21:47:41 UTC) #6
XinQi
Update patch upon comments
14 years, 4 months ago (2010-06-15 23:34:06 UTC) #7
agl
r578
14 years, 4 months ago (2010-06-16 19:53:46 UTC) #8
ray.essick
I'd have written the version in opts/SkBlitRow_opts_arm.cpp run with even wider operations if gcc had ...
14 years, 4 months ago (2010-06-16 22:28:52 UTC) #9
XinQi
Could you expand what you mean? Use inline assembly to implement it or to use ...
14 years, 4 months ago (2010-06-17 00:36:31 UTC) #10
ray.essick
sure, i can expand/explain where i'm coming from. I wrote a lot of that neon ...
14 years, 4 months ago (2010-06-17 03:40:15 UTC) #11
XinQi
Ray, Thanks for the detailed comments. * Using testing vector dumped in chromium browser loading ...
14 years, 4 months ago (2010-06-17 18:54:29 UTC) #12
agl
On Thu, Jun 17, 2010 at 2:54 PM, <XinQi@codeaurora.org> wrote: > May have one bit ...
14 years, 4 months ago (2010-06-17 18:58:09 UTC) #13
agl
On Thu, Jun 17, 2010 at 2:58 PM, Adam Langley <agl@chromium.org> wrote: > I haven't ...
14 years, 4 months ago (2010-06-18 15:34:38 UTC) #14
XinQi
Make S32A_Opaque_BlitRow32_neon2 bit exact as S32A_Opaque_BlitRow32_neon
14 years, 4 months ago (2010-06-18 18:28:49 UTC) #15
XinQi
Make S32A_Opaque_BlitRow32_neon2 bit exact as S32A_Opaque_BlitRow32_neon
14 years, 4 months ago (2010-06-18 18:45:03 UTC) #16
XinQi
* Update algorithm to use dst = src + SkAlphaMulQ(dst, SkAlpha255To256(255 - SkGetPackedA32(src))) it is ...
14 years, 4 months ago (2010-06-18 18:50:27 UTC) #17
XinQi
14 years, 4 months ago (2010-06-18 18:56:42 UTC) #18
AGL,

We need the following updates on chromium/src/skia/skia.gyp for the new added .S
files.  

Thanks,
Xin

diff --git a/skia.gyp b/skia.gyp
index 2b17094..4305fa4 100644
--- a/skia.gyp
+++ b/skia.gyp
@@ -726,7 +726,13 @@
           'sources': [
             '../third_party/skia/src/opts/SkBitmapProcState_opts_arm.cpp',
             '../third_party/skia/src/opts/SkBlitRow_opts_arm.cpp',
-            '../third_party/skia/src/opts/SkUtils_opts_none.cpp',
+            '../third_party/skia/src/opts/S32A_Opaque_BlitRow32_neon2.S', 
+            '../third_party/skia/src/opts/S32_Opaque_D32_nofilter_DX_gather.S',

+            '../third_party/skia/src/opts/xfer.S', 
+            '../third_party/skia/src/opts/memset16_neon.S', 
+            '../third_party/skia/src/opts/memset32_neon.S', 
+            '../third_party/skia/src/opts/opts_check_arm_neon.cpp',
+            '../third_party/skia/src/opts/t32cb16blend.S', 
           ],
         }],
       ],
Sign in to reply to this message.

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