Integrate NEON optimisations for armel

Bug #385553 reported by Dave Martin
16
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pixman (Ubuntu)
Fix Released
Wishlist
Unassigned
Declined for Karmic by Loïc Minier

Bug Description

There are upstream optimisations in pixman, based on the ARM NEON extensions in Cortex-A8 etc.

http://cgit.freedesktop.org/pixman/

The current Karmic version of pixman is based on upstream 0.14.0, which does not have the NEON support.

It's highly desirable to bring the optimisations into Karmic if possible, since this is expected to benefit the performance of most graphical applications to some extent on Cortex-A8. What's the best way of bringing in the NEON support for Karmic (which looks to be reasonable complete from 0.15.8 onwards)?

Note that there appear to have been some ongoing minor fixes committed to the NEON code between 0.15.8 and the present time.

Tags: armel
Revision history for this message
Dave Martin (dave-martin-arm) wrote :

An additional clarification here:

It seems the the pixman trunk is still stabilising, but there is likely to be a stable version in time for the Karmic feature freeze; preferably alpha4.

Assuming a stable version exists in the right timescale, is it feasible to switch the packaged libpixman version to a newer release?

Paul Larson (pwlars)
tags: added: armel
Revision history for this message
Paul Larson (pwlars) wrote :

Confirmed, pixman is still at 0.14 for karmic right now

Changed in pixman (Ubuntu):
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
Robert Hooker (sarvatt) wrote :

pixman 15.14 is in debian experimental right now (along with reenabled arm SIMD support), but there has been a problem using the 15.x series with the xserver 1.6 branch that karmic uses and it might be worth holding off for 15.15 where it was just recently fixed.

http://cgit.freedesktop.org/pixman/commit/?id=0fce356762864572ae126733f657600fbb9116ce
http://bugs.freedesktop.org/show_bug.cgi?id=22484
http://lists.x.org/archives/xorg-devel/2009-July/001376.html

Revision history for this message
Robert Hooker (sarvatt) wrote :

If anyone wants to experiment with it, I have built pixman with neon optimizations here for karmic armel here:

http://sarvatt.com/downloads/armel/

Also, I built xserver against that updated pixman as well. I do not have a machine with which to test it on but I am curious how it works out if anyone does try it. Note that -mfloat-abi=softfp was a required addtion to CFLAGS in debian/rules in order for it to build the NEON runtime detection support. It would only add SIMD runtime detection support otherwise.

Revision history for this message
Dave Martin (dave-martin-arm) wrote :

I've tried out your rebuilt package; there are a couple of minor slowdowns against the current karmic pixman, but most things are a bit faster and it looks like a general improvement. Some of these differences are likely due to general modifications to pixman between 0.13.x and 0.15.19. Some things do seem to speed up significantly, such as the radial tests in cairo-perf.

I'm warned that there is bugginess in versions before 0.15.19, so 0.15.19 (or newer if/when available) is definitely the version to go with.

cairo-perf results attached.

All of cairo-perf seemed to run OK, except that there were a small number (9) of failures like this:
 Surface is larger than the Screen.
 Error: Failed to create target surface: xlib

I'm guessing this is a platform configuration issue and not something serious. The tests were running on a small LCD panel, so it's not too surprising if some tests assumed a larger screen size.

Revision history for this message
Dave Martin (dave-martin-arm) wrote :

Note: there still seem to be some outstanding concerns about the robustness of the NEON code in 0.15.19, so we might want to wait for a later version before turning it on. I don't have any further details on this for now, but I'll add extra details if I get some useful information.

Revision history for this message
Loïc Minier (lool) wrote :

I think this is fixed in lucid which has 0.16.2-1:

pixman (0.15.14-1) experimental; urgency=low

[...]
  * Enable arm simd, we can do runtime detection now.

Changed in pixman (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Loïc Minier (lool) wrote :

I don't think we want a new upstream version in karmic (back in karmic, we didn't want to use an unstable upstream version -- 0.15.x -- and 0.16.x came a bit late for the karmic cycle).

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.