[cairo-bugs] [Bug 16128] New: optimize swap functions/speed improvement possible

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed May 28 08:32:45 PDT 2008


           Summary: optimize swap functions/speed improvement possible
           Product: cairo
           Version: 1.6.4
          Platform: All
        OS/Version: All
            Status: RESOLVED
          Severity: enhancement
          Priority: medium
         Component: xlib backend
        AssignedTo: cworth at cworth.org
        ReportedBy: charlet at adacore.com
         QAContact: cairo-bugs at cairographics.org

Behdad Esfahbod <freedesktop at behdad.org> changed:

           What    |Removed                     |Added
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

In cairo-xlib-surface.c, it should be possible to get a 2x to 4x speed
for _swap_ximage_[24]bytes by using facilities provided in <byteswap.h> (under
glibc systems), or by using recent GCC's builtin __builtin_bswap32.


--- Comment #1 from Arnaud Charlet <charlet at adacore.com>  2008-05-28 02:06:37 PST ---
Created an attachment (id=16783)
 --> (http://bugs.freedesktop.org/attachment.cgi?id=16783)
test program with various byteswap implementations

The test program itself is too simple minded, but this attachment shows
several possible implementations of byteswapping which can be of interest.

$ gcc -O2 byteswap.c -o byteswap
$ ./byteswap 
time spent: 1114
cairo code
time spent: 2247
time spent: 2225
time spent: 747

--- Comment #2 from Behdad Esfahbod <freedesktop at behdad.org>  2008-05-28 08:32:43 PST ---
commit 5de0650dbbed7a44789f25b0a5226593931a8ce8
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed May 28 10:43:47 2008 -0400

    [cairo-xlib] Add recently-added byteswap macros (#16128)

commit dd8f3a5690e92ac3421e5bbc475cc3e78865d8ef
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed May 28 10:43:22 2008 -0400

    Add support for byteswap macros bswap_16 and bswap_32

Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

More information about the cairo-bugs mailing list