Linked by Thom Holwerda on Sat 28th Jun 2008 22:09 UTC, submitted by diegocg
X11, Window Managers "Maybe I'm just naive, but designing a graphics API such that all image data had to be sent over a socket to another process every time the image needed to be drawn seems like complete idiocy. Unfortunately, that is precisely what the X Window System forces a program to do, and exactly what Cairo does when drawing images in Linux - a full copy of the image data, send to another process, no less, every time it is drawn. One would think there would be some room for improvement. Unsurprisingly, others felt the same way about X, and decided to write an extension, Xlib Shm or XShm for short, that allows images to placed in a shared memory segment from which the X server reads which allows the program to avoid the memory copy. GTK already makes use of the XShm extension, and it seems like a good idea to see if Gecko couldn't do the same."
Permalink for comment 320715
To read all comments associated with this story, please click here.
x11pref
by panzi on Mon 30th Jun 2008 19:54 UTC
panzi
Member since:
2006-01-22

Fedoara 8, all patches, KDE3 (so kwin and *NO* composite/XGL/AIGLX), nvidia GeForce 8800 GTS 512 (GPU 0), proprietary drivers (version 173.14.09), x server vendor string: 1.3.0

$ uname -a
Linux panzi 2.6.25.6-27.fc8 #1 SMP Fri Jun 13 16:38:52 EDT 2008 i686 i686 i386 GNU/Linux

$ x11perf -putimage500
x11perf - X11 performance program, version 1.5
The X.Org Foundation server version 10300000 on :0.0
from panzi
Mon Jun 30 21:41:07 2008

Sync time adjustment is 0.0360 msecs.

8000 reps @ 1.0904 msec ( 917.0/sec): PutImage 500x500 square
8000 reps @ 1.0871 msec ( 920.0/sec): PutImage 500x500 square
8000 reps @ 1.0928 msec ( 915.0/sec): PutImage 500x500 square
8000 reps @ 1.0950 msec ( 913.0/sec): PutImage 500x500 square
8000 reps @ 1.0959 msec ( 913.0/sec): PutImage 500x500 square
40000 trep @ 1.0922 msec ( 916.0/sec): PutImage 500x500 square

$ x11perf -shmput500
x11perf - X11 performance program, version 1.5
The X.Org Foundation server version 10300000 on :0.0
from panzi
Mon Jun 30 21:42:12 2008

Sync time adjustment is 0.0356 msecs.

12000 reps @ 0.6102 msec ( 1640.0/sec): ShmPutImage 500x500 square
12000 reps @ 0.6031 msec ( 1660.0/sec): ShmPutImage 500x500 square
12000 reps @ 0.6065 msec ( 1650.0/sec): ShmPutImage 500x500 square
12000 reps @ 0.6037 msec ( 1660.0/sec): ShmPutImage 500x500 square
12000 reps @ 0.6065 msec ( 1650.0/sec): ShmPutImage 500x500 square
60000 trep @ 0.6060 msec ( 1650.0/sec): ShmPutImage 500x500 square


so about twice as fast

Reply Score: 1