Bug 21173

Summary: fbFetch_a8() using SSE2
Product: pixman Reporter: Steve Snyder <fdt0317.20.swsnyder>
Component: pixmanAssignee: Søren Sandmann Pedersen <soren.sandmann>
Status: RESOLVED FIXED QA Contact: Søren Sandmann Pedersen <soren.sandmann>
Severity: normal    
Priority: medium    
Version: other   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: SSE2-ify fbFetch_a8()

Description Steve Snyder 2009-04-14 07:57:27 UTC
Created attachment 24789 [details] [review]
SSE2-ify fbFetch_a8()

While profiling Firefox I saw fbFetch_a8() in the profiler output.  It wasn't terribly high on the list of timed functions, but improving fbFetch_a8() seemed easy.

The fbFetch_a8() function reads a byte from a source buffer, shifts it up by 24 bits and writes the 32-bit value to the dest buffer.  One pixel is handled per loop.

The attached (SSE2 instructions required) patch changes this behavior to read-shift-write 16 pixels per loop.  The original code is retained to clean up stray (<16 remaining) pixels.
Comment 1 Søren Sandmann Pedersen 2011-02-03 00:26:37 UTC
Fixed in master.

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.