Institut für Computersprachen >>
Home Page of Stefan Kral >>
Current/Past Projects >>
Eye-friendly Animations in XFree86
Eye-friendly Animations in XFree86
Fast-paced, abstract animations (like this one) can suffer from flicker, frame-loss, and tearing effects.
Double-buffering
alone can only prevent flicker, it can not prevent tearing effects.
Syncing with the vertical retrace of the CRT-screen and using some
double-buffering facility can help prevent all these problems.
Using the XF86VidMode-Extension to sync with the vertical retrace
This little demo illustrates
how an XFree86-extension (XF86VidMode) can be used to synchronize with
the vertical retrace (vblank).
Unfortunately, this trick does not work with all video-drivers.
Patched Video-Drivers for XFree86
For some video-cards, patched drivers for
XFree86 are available. These drivers include a patch for the
routine AdjustFrame, enabling XF86VidModeSetViewPort to synchronize
with the vertical retrace of the screen.
Status
Status is still unknown for most drivers (apm_drv, ark_drv,
chips_drv, cirrus_alpine, cirrus_drv, cirrus_laguna, cyrix_drv,
fbdev_drv, glide_drv, glint_drv, i128_drv, i740_drv, imstt_drv,
neomagic_drv, nv_drv, rendition_drv, s3virge_drv, savage_drv,
siliconmotion_drv, sis_drv, tdfx_drv, tga_drv, tseng_drv, vesa_drv,
and wmvare_drv).
This is the current status of XF86VidModeSetViewPort with several
video-drivers. Commercial drivers are listed in italic fonts.
driver \ xfree86 |
4.0.3 |
4.1.0 |
4.1.0.1 |
4.2.0 |
atimisc_drv |
|
|
P |
P |
i810_drv |
B |
|
|
P? |
mga_drv |
|
|
OK |
OK |
trident_drv |
|
B |
P |
P |
vga_drv |
|
|
P |
|
nvidia_drv |
|
|
|
OK |
The symbols have the following meaning:
'OK' | The driver properly supports synchronization with the vertical retrace. |
'B' | The driver does not support synchronization with the vertical retrace. |
'P' | A patched, tested version of the driver is available. |
'P?' | A patched, untested version of the driver is available. |
(empty cell) | No information is available about that particular combination. |
Last update: Tue Nov 5 00:46:42 CET 2002