vfc(video format compiler) lets you compile
.vfsvideo-format source files into
.vfofiles, with a variety of screen sizes and scan rates, for at least a couple of kinds of graphics hardware: Infinite Reality and the O2's CRM graphics. You can then install these
.vfofiles in the appropriate place,
/usr/gfx/setmonto activate them.
See also the companion page on compiling stereoscopic video formats for the O2. In this one, I'll just describe some general information, and how to create high-res monoscopic formats. Also check out Simon Lok's analog 1600SW .vfs for driving an SGI flat panel in analog mode, with a multilink adapter instead of a digital flat panel adapter.
You can pick up this documentation, assorted examples, etc. in one tarball: see o2-stereo.tar.gz.
To play this game, you need:
versions vfc" will list a handful of entries beginning something like
I vfc 02/09/99 Video Format Compiler, 1.0
vfcinstallation includes some examples in
/usr/gfx/ucode/vfc/vfs, and of course there are examples included here.
/usr/gfx/ucode/CRM/vof, and perhaps also to be able to run
vfc(/usr/sbin/vfc) to compile the .vfs file; see the Makefile in this package, or try (supposing the file was XYZ.vfs):
vfc -i "cc -E" -a ascii=XYZ.info -c chip=/usr/gfx/ucode/vfc/rules/O2_Chip.def,board=/usr/gfx/ucode/vfc/rules/O2_Board.def -o XYZ.vfo XYZ.vfsto yield
xsizexysize_framerate[s|p]where the optional s indicates a stereo format, and (for the O2), p indicates a format for the flat-panel display.
xdpyinfo | grep dimensions
where the formatname is as described above, e.g.
/usr/gfx/setmon -n formatname
Note that setmon requires invoking formats by their conventional name, even if the installed .vfo file has a different name. Setmon actually parses the given name, extracting the size and other parameters, and asks the X server for a video format with those attributes.
/usr/gfx/setmon -n 1280x1024_72
/usr/gfx/setmon -w formatname
to make the new format be the default one, which the X server uses when it's (re-)started, e.g. at boot time.
/usr/gfx/setmon -w formatname
setmon -w) force the X server to restart; there are several ways to do this, but the simplest is the Vulcan Death Grip key sequence: press the following four keys and hold them all down:
/key on the keypad (not under the
which is shorthand for
/usr/gfx/setmon -w 72(or 75, or 60)
1280x1024_72and etc., as described in
Then, force the X server to stop (if it started at all) and restart; if the Vulcan Death Grip doesn't do it (it won't if the X server never started), try (as root)
The ACTIVE_LINES, ACTIVE_PIXELS and FPS values should be obvious, but EXTRA_HBP needs explanation.
For high-res formats, it often seems that the default allotted horizontal retrace time isn't quite enough for the monitor; the symptom is that the extreme left edge of the raster will be very bright, and a bit compressed. Extending the horizontal back porch (HBP) time seems to help. Use the smallest number you can that makes the artifact disappear.
/usr/gfx/ucode/vfs/rules/O2_Chip.def). This probably limits the ultimate raster width to around 1650-1700 pixels.
.infofile after compiling a format to make sure you're not overrunning the DAC. Not sure how serious an error that is, but perhaps it overheats if overclocked (so an error might not be instantly obvious, but could do damage eventually).
If the pixel rate is too high, the options seem to be:
The monitor will impose limitations too. Be ready to
/usr/gfx/setmon -n 72 if the monitor goes blank,
begins to screech, etc. Might be wise to alias something simple to that
command in case you can't see to type -- or better, bind an Alt-Fxx key
to f.exec that command in ~/.4Dwmrc.
The 1600x1200_56.* format acts a bit odd: a strip (~190 wide x 38 high) of the upper left portion of the screen is duplicated at the lower right, hiding anything that ought to appear in that extreme lower right strip. The cursor, and contents of the overlay planes, are not duplicated. If you don't like this, try reducing the resolution a bit.
vfcworks on Octanes, it looks as though the relevant files are supplied. Furthermore, the Octane .vfo files all claim to have been compiled with vfc. Unfortunately, I haven't found any combination of tweaks to get any .vfs file, even for non-stereo formats, to compile on the Octane yet. If anyone succeeds, I'd love to hear about it.
Stuart Levy, email@example.com