Institut für Computersprachen, TU-Wien 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.


Valid HTML 4.0! Last update: Tue Nov 5 00:46:42 CET 2002