Closed Bug 451621 Opened 11 years ago Closed 11 years ago

Pixman optimizations for arm


(Core :: Graphics, defect, P2)






(Reporter: jrmuizel, Assigned: jrmuizel)



(Keywords: mobile, perf)


(2 files, 6 obsolete files)

Attached patch go faster (obsolete) — Splinter Review
Make a pixman faster on arm. Also adds a faster rectilinear nearest neighbour image scaling.
Attached patch go faster w/ better configury (obsolete) — Splinter Review
Detect if the compiler supports ARM simd instructions
Attachment #334945 - Attachment is obsolete: true
Assignee: jmuizelaar → nobody
Component: General → GFX: Thebes
Keywords: mobile, perf
Product: Fennec → Core
QA Contact: general → thebes
Assignee: nobody → jmuizelaar
Flags: wanted1.9.1?
+ * Copyright © 208 Mozilla Corporation
that was a long time ago
Flags: wanted1.9.1? → wanted1.9.1+
Priority: -- → P2
Attached patch arm pixman patch update (obsolete) — Splinter Review
Update pixman patch to match what was submitted for upstream inclusion
Attachment #334966 - Attachment is obsolete: true
Attached patch arm pixman v2 (obsolete) — Splinter Review
Fix the configury by adding HAVE_ARM_SIMD to
Attachment #336679 - Attachment is obsolete: true
Attached patch arm pixman v3 (obsolete) — Splinter Review
use one fewer registers in fbCompositeSolidMask_nx8x8888arm allowing compiling with worser compilers.
Attachment #336912 - Attachment is obsolete: true
Attached patch arm pixman v4 (obsolete) — Splinter Review
The last patch was broken and wrong, this patch fixes it.
Attachment #336920 - Attachment is obsolete: true
Attached patch additional patchSplinter Review
Additional patch -- not ARM specific, but it's related to our arm work.  Just sticking it here so that it's in bugzilla, both of these should hopefully end up in pixman upstream shortly.  I will probably commit these both to our own repo before that happens, though, since I think we're waiting on 0.12.0 to be released before putting in the arm code.
A colleague of mine had a brief look at Jeff's patch and has a few comments:
1. In the first while() loop of fbCompositeSrcAdd_8000x8000arm you can use UQADD8, it doesn't matter that you just want the bottom lane. Similarly in the third loop.

2. There are many AND operations with %[component_mask] to extract bytes. These can be replaced by UXTB16, saving the mask register.

3. There are mask operations with %[component_mask] followed by accumulates.
These can be replaced by the combined mask and accumulate UXTAB16.

Hope that helps.
Attached patch arm pixman v5Splinter Review
This version addresses Guillaume's comments (Thanks!) and squeezes some more performance out. e.g. over8888x8888 is about 10-11% faster.
Attachment #336971 - Attachment is obsolete: true
Pulled this in along with a few more pixman updates to 0.12.0.

19351   5d807b616378   2008-09-17 14:15 -0700   vladimir
  b=451621; push new pixman with arm fast-paths; r=me
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.1b1
You need to log in before you can comment on or make changes to this bug.