There is a mode, called shadow framebuffer, where the graphics are used to display the images. All rendering is done in memory in a so-called shadow framebuffer.
Karl also had an experience that is he enabled the shadow frame buffer and XGetImage dramatically speeds up 50~100 time of non-shadow frame buffer.
I had a trial and the results are as the following statement:
on IBM A30 desktop machine, Pentium-4 500MHz cpu and 256M Bytes ram.
- Enable vesa framebuffer to run Xwindow and get an 1024*768*16-bits full screen frame by XShmGetImage, it takes about 160~170 milliseconds per frame.
- At the same condition of 1., but map /dev/fb0 frame buffer to memory and get the full screen frame from the mapped memory, it takes about 160 ~ 170 milliseconds per frame.
- At the same condition of 1., but use i810 driver which is auto detected by Xorg after I installed Ubuntu on IBM A30, it takes about 77 milliseconds per frame.