Bug 22938

Summary: Please add a make target for profile-optimized build
Product: pixman Reporter: Clemens Eisserer <linuxhippy>
Component: pixmanAssignee: Søren Sandmann Pedersen <soren.sandmann>
Status: RESOLVED WONTFIX QA Contact: Søren Sandmann Pedersen <soren.sandmann>
Severity: enhancement    
Priority: medium    
Version: other   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Clemens Eisserer 2009-07-24 11:47:30 UTC
With profile driven optimizations, trapezoid rasterization is 10-25% faster.
It would be great if pixman's build scripts could perform a profiling run (at least for traps) in a new target, so that lazy distributors could get better optimized binaries without any additional effort.

-------------------
Long story:

I dumped all trapezoids passed to X in a binary file (firefox, kde, gtk apps), and wrote a small benchmark which passes that traps to pixman for rasterization.
I guess a small selection of common trapezoids would do it, so that 14mb binary blob isn't required ;)

i686/generic/O2:		 4.4s (366kib)
i686/generic/O3:		 4.4s (400kib)
native/O3:			 4.3s (440kib)
i686/generic/O2 + profile:	 3.5s
i686/generic/O3 + profile:	 3.48s
native/O3 + profile:		 3.35s (296kib)
---------------------------
QGears2/O2:                      ~70fps
QGears2/O2+profile               ~80fps

Because trapezoid rasterization is quite often a bottleneck when using the image backend and is also quite important for RENDER performance it would be great if at least for pixman-edge/pixman-traps a new make target could be added which does a profile-run with some common trapezoids.

What I've seen from my tests it doesn't matter if the profile-data matches exactly the real-data, the compiler is quite happy to get some idea how the code works.

The tests were run on a Core2Duo 2x2ghz/4mb L2 cache.
Comment 1 Søren Sandmann Pedersen 2011-05-09 01:56:35 UTC
I don't think it is useful to keep this bug open when there is no indication that anyone is ever going to work on it.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.