VFO: Video Format Object Files
Video format objects are microcode images loaded into SGI graphics display hardware to generated the timing signals required to produce display images at specific resolutions and refresh rates. Video format object (vfo) microcode is typically generated using SGI's Video Format Compiler (VFC) and end-user prepared video format source (vfs) files.
As mentioned in the vfc man page , vfo files are hardware specific:
SGI includes a number of video format source code files with the installation of the Video Format Compiler. The comments section of those source files indicate most were written specifically for use with some of the CRT monitors marketed by SGI. This includes all of the wide-format for which source files are available. As a result some of the SGI vfo microcode provided for wide-screen displays does not always produce a stable displays when used with more recent LCD monitors.
Reduced Blanking : Modern LCD monitors that don't work well with the CRT-targeted vfo microcode supplied by SGI may see improvement if used with a format that includes reduced blanking. Reduced blanking lowers display format overhead needed to allow CRT screen redraws, overhead that doesn't benefit and may adversely affect LCD monitors . Reduced blanking is primarily intended for use with DVI-connected LCD monitors, but any LCD monitor new enough to take advantage of reduced blanking *may* also benefit when connected via the VGA port.
Graphics hardware errata:
If anyone would like advice or assistance with creating custom microcode display files, just post a request in this thread.
Video format objects are microcode images loaded into SGI graphics display hardware to generated the timing signals required to produce display images at specific resolutions and refresh rates. Video format object (vfo) microcode is typically generated using SGI's Video Format Compiler (VFC) and end-user prepared video format source (vfs) files.
As mentioned in the vfc man page , vfo files are hardware specific:
Generally speaking, video format objects (vfos) can be created using one of two methods:The vfc man page wrote: Video format object microcode is not binary compatible between different hardware types. Although vfc is independently re-targetable to a number of different hardware types, video format objects that were compiled to run with one hardware architecture will not necessarily run on another. For example, video format objects created for Infinite Reality will not work properly on Impact.
- By use of a block sync template: Because no user-defined format source file is needed, this method is quick and easy to use. Because it the lacks specific monitor, resolution and format timing details that can be included in a source file, it produces the most generically targeted microcode.
- By creating a video format source (vfs) file: Video format source files offer the ability to tailor the microcode for specific resolutions, refresh rates and even monitors. Monitor specific format values can be obtained from the (monitor) manufacturer, or in the case of some more recent displays, extracted from the monitor firmware in with EDID reader/decoder software (EDID information or manufacturer provided modelines can sometimes be found with a web search). If neither of those methods is available, then there are a number of display modeline generators that offer all of the timing values needed to complete a video source file. Generated modelines won't necessarily contain the same values as provided by the manufacturer or EDID information for a particular monitor, but should still provide microcode that is reasonably well targeted to specific resolutions and refresh rates.
SGI includes a number of video format source code files with the installation of the Video Format Compiler. The comments section of those source files indicate most were written specifically for use with some of the CRT monitors marketed by SGI. This includes all of the wide-format for which source files are available. As a result some of the SGI vfo microcode provided for wide-screen displays does not always produce a stable displays when used with more recent LCD monitors.
Reduced Blanking : Modern LCD monitors that don't work well with the CRT-targeted vfo microcode supplied by SGI may see improvement if used with a format that includes reduced blanking. Reduced blanking lowers display format overhead needed to allow CRT screen redraws, overhead that doesn't benefit and may adversely affect LCD monitors . Reduced blanking is primarily intended for use with DVI-connected LCD monitors, but any LCD monitor new enough to take advantage of reduced blanking *may* also benefit when connected via the VGA port.
Graphics hardware errata:
-
The first generation of Octane VPro graphics boards, the V6 and the V8, can not generate display resolutions that have a pixel clock between 109MHz and 193MHz. This limits the ability of the V6 and V8 to use a number of common display resolutions, a situation that can be at least partially over come with the use of reduced blanking. As an example, a CVT-generated 1600x900@60Hz modeline without reduced blanking would have a Pixel Clock of 118.25MHz, which falls in the unusable 109-193MHz Pixel Clock range
Code: Select all
Modeline "1600x900_60.00" *118.25* 1600 1688 1856 2112 900 903 908 935 -HSync +Vsync
Code: Select all
Modeline "1600x900_60.00rb" *97.75* 1600 1648 1680 1760 900 903 908 926 +HSync -Vsync
-
VPro graphics have a maximum screen height of 2048 pixels. Exceeding that amount will generate a VFC error:
Code: Select all
Screen height is greater than 2048.000000 pixels. Decrease ActiveLinesPerFrame
-
DCD-equipped VPros require dual channel display modes (2@) with a horizontal resolution that is a multiple of 64. 1440x900 and 1680x1050 are relatively a common wide-screen formats with horizontal resolutions that aren't multiples of 64; attempting to compile dual channel microcode in either format will generate the following error message:
Code: Select all
DualHead Formats must have a screen boundary at a multiple of 64. Make ActivePixelsPerLine a multiple of 64.
-
O2 graphics have a limitation of 2160 TotalPixelsPerLine. VFO microcode generated from a reduced blanking modeline will typically lower the TotalPixelsPerLine value. As an example, a CVT-generated modeline for 1680x1050@60Hz without a reduction in blanking results in 2240 TotalPixelsPerLine, which would generate a VFC error rather than usable microcode;
Code: Select all
Modeline "1680x1050_60.00" 146.25 1680 1704 1960 *2240* 1050 1053 1059 1089 -HSync +Vsync
Code: Select all
Modeline "1680x1050_60.00rb" 119.00 1680 1728 1760 *1840* 1050 1053 1059 1080 +HSync -Vsync
If anyone would like advice or assistance with creating custom microcode display files, just post a request in this thread.
***********************************************************************
Welcome to ARMLand - 0/0x0d00
running...(sherwood-root 0607201829)
* InfiniteReality/Reality Software, IRIX 6.5 Release *
***********************************************************************
Welcome to ARMLand - 0/0x0d00
running...(sherwood-root 0607201829)
* InfiniteReality/Reality Software, IRIX 6.5 Release *
***********************************************************************