Tips: Video Bugs

by Denis Pelli

VideoToolbox
PsychToolbox
Tips
 
speed
displays
how to
mac software
bibliographies

December 29, 1998

Other than reading and writing pixels, all access to a video device normally goes through the software video driver. (You can use VideoToolbox SetEntriesQuickly.c to bypass the video driver of a few devices, but I don't recommend that, except as a last resort, because your program will then only work with the few video devices that SetEntriesQuickly supports.) The video driver is normally supplied in ROM on the video card or, for built-in video, in the computer's ROM. (Apparently, new PCI drivers can simply be tossed onto the System Folder.) Many drivers have subtle bugs that TimeVideo has uncovered and documented. This file is a complete list of all the bugs that I know of. I have the very strong impression that reporting these bugs to the manufacturers has led them to eliminate the bugs in subsequent versions. Before TimeVideo there was no easy way to test for most of these bugs. If your driver is not listed, please run TimeVideo and send me the report: denis@psych.nyu.edu

0. ATI PowerMac video cards: E.J. Chichilnisky, writes (12/29/98)

1. The following drivers crash if one attempts to make a cscGetEntries request. GDGetEntries tests for these driver names and version numbers, and returns an error message instead of calling a driver that would crash. Try the demo TestGDVideo.


2. The following drivers either take too long (more than 1 frame) to load the clut (i.e. cscSetEntries), or suppress one or more frame's worth of VBL interrupts each time they load the clut, or both. Try TimeVideo.


3. The following cards and drivers issue multiple VBL interrupts per frame, whereas they should emit exactly one per frame. Try TimeVideo.


4. 16 & 32-bit modes. These video drivers will correctly load the whole clut, but screw up if asked to load one clut entry at a time. The problems only occur in 16- and 32-bit mode, i.e. calling cscDirectSetEntries. Apparently few or no applications (other than TimeVideo) ever do this, as otherwise the manufacturers would have detected the fault.


5. The following video drivers don't support cscSetGamma or cscGetGamma. (Apparently Apple considers these calls optional, so not supporting them is not, strictly speaking, a bug.)


6. Some color video cards autodetect monochrome monitors, and remain in gray mode despite attempts to set to color mode (e.g. to use the Pelli-Zhang Video Attenuator). You may be able to fool the video card into thinking it's driving a color monitor by using a video adapter (about $40) to program the sense pins appropriately.


7. Other bugs:


8. Video drivers that have been tested (v.0, unless noted otherwise):


Contributors to the VideoSynch,VideoBugs, & Speed pages.


Please send any corrections or additions to denis@psych.nyu.edu