Line 1: |
Line 1: |
| Video format objects are microcode images loaded into [[Silicon Graphics|SGI]] graphics display hardware to generated the timing signals required to produce display images at specific resolutions and refresh rates. Vfo's are generated using [[Silicon Graphics|SGI]]'s [[VFC:Video Format Compiler|Video Format Compiler (VFC)]] and end-user prepared video format source (vfs) files. VFC is not installed by default with IRIX, so you must install it separately if you wish to create custom video format files. | | Video format objects are microcode images loaded into [[Silicon Graphics|SGI]] graphics display hardware to generated the timing signals required to produce display images at specific resolutions and refresh rates. Vfo's are generated using [[Silicon Graphics|SGI]]'s [[VFC:Video Format Compiler|Video Format Compiler (VFC)]] and end-user prepared video format source (vfs) files. VFC is not installed by default with IRIX, so you must install it separately if you wish to create custom video format files. |
| + | |
| + | == System Compatibility == |
| | | |
| Video format object microcode is not binary compatible between different hardware types. Although [[VFC:Video Format Compiler|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|Infinite Reality]]TM will not work properly on [[IMPACT|Impact]]. As another example, a vfo file created for an Octane SI graphics card will not work with an Octane 2 V8. However, a file created for an Indigo2 Solid Impact will also work with an Octane Solid Impact (but not/not 2RSS cards such as the SSI/SSE/MXI/EMXI). VPro .vfo files are interchangeable. | | Video format object microcode is not binary compatible between different hardware types. Although [[VFC:Video Format Compiler|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|Infinite Reality]]TM will not work properly on [[IMPACT|Impact]]. As another example, a vfo file created for an Octane SI graphics card will not work with an Octane 2 V8. However, a file created for an Indigo2 Solid Impact will also work with an Octane Solid Impact (but not/not 2RSS cards such as the SSI/SSE/MXI/EMXI). VPro .vfo files are interchangeable. |
| + | |
| + | == Block Sync Templates, Video Format Source Files, and EDID == |
| | | |
| Generally speaking, video format objects (vfos) can be created using one of two methods: | | Generally speaking, video format objects (vfos) can be created using one of two methods: |
| | | |
| # 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 [[Monitors_on_SGI_Machines|monitor]], resolution and format timing details that can be included in a source file, it produces the most generically targeted microcode. | | # 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 [[Monitors_on_SGI_Machines|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_on_SGI_Machines|monitors]]. [[Monitors_on_SGI_Machines|Monitor]] specific format values can be obtained from the ([[Monitors_on_SGI_Machines|monitor]]) manufacturer, or in the case of some more recent displays, extracted from the [[Monitors_on_SGI_Machines|monitor]] firmware in with EDID reader/decoder software (EDID information or manufacturer provided modelines can sometimes be found with an web search, or from [https://github.com/linuxhw/EDID this github page]). [https://github.com/callahan-44/sgivfo This github page has an template] that easily generates a custom .vfs file using monitor-specific EDID. 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 [[Monitors_on_SGI_Machines|monitor]], but should still provide microcode that is reasonably well targeted to specific resolutions and refresh rates. | + | # 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_on_SGI_Machines|monitors]]. |
| + | |
| + | Most modern monitors automatically transmit '''Enhanced Display Identification Data (EDID)''' data that defines the monitor's detailed preferred video format, including all data needed to create a custom .vfs file. This data can be extracted using widely available Linux/Unix tools such as get_edid/parse_edid or directly from display drivers on many Windows systems. There is also a large repository of monitor-specific EDID data at [https://github.com/linuxhw/EDID this github page]). [https://github.com/callahan-44/sgivfo This github page has an template] that easily generates a custom .vfs file using monitor-specific EDID. If EDID is not available (for example, on older [[Monitors_on_SGI_Machines|monitors]]), specific format values might also be obtained from the ([[Monitors_on_SGI_Machines|monitor]]) manufacturer. |
| + | |
| + | 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 [[Monitors_on_SGI_Machines|monitor]], but should still provide microcode that is reasonably well targeted to specific resolutions and refresh rates. |
| | | |
| [[SGI]] included a number of video format source code files with the installation of the [[VFC:Video Format Compiler|Video Format Compiler]]. The comments section of those source files indicate most were intended for use with some of CRT [[Monitors_on_SGI_Machines|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_on_SGI_Machines|monitors]]. | | [[SGI]] included a number of video format source code files with the installation of the [[VFC:Video Format Compiler|Video Format Compiler]]. The comments section of those source files indicate most were intended for use with some of CRT [[Monitors_on_SGI_Machines|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_on_SGI_Machines|monitors]]. |
| | | |
− | Modern LCD [[Monitors_on_SGI_Machines|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. [http://www.playtool.com/pages/dvicompat/dvi.html#blanking Reduced blanking lowers display format overhead needed to allow CRT screen redraws, overhead that doesn't benefit and may adversely affect LCD monitors]. Any LCD [[Monitors_on_SGI_Machines|monitor]] new enough to take advantage of reduced blanking may benefit when using a custom .vfo/.sdb file. Reduced blanking can also allow much greater resolution and refresh rates on systems with relatively low pixel clock restrictions, such as [[IMPACT]] boards. Using reduced blanking, even low end [[IMPACT]] systems have been proven to support resolutions of 1920x1200 at ~60 FPS. | + | == Modern LCDs and Reduced Blanking == |
| | | |
− | Some users, however, [http://forums.irixnet.org/thread-1152.html have noted visual artifacts] on [[IMPACT]] systems with modern LCDs using high resolutions (such as 1920x1080) and the monitor's native EDID resolution. These artifacts have been reduced or eliminated by incrementally increasing the blanking in the custom .vfs file.
| + | Modern LCD [[Monitors_on_SGI_Machines|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. [http://www.playtool.com/pages/dvicompat/dvi.html#blanking Reduced blanking lowers display format overhead needed to allow CRT screen redraws, overhead that doesn't benefit and may adversely affect LCD monitors]. Any LCD [[Monitors_on_SGI_Machines|monitor]] new enough to take advantage of reduced blanking may benefit when using a custom .vfo/.sdb file. |
| + | |
| + | Reduced blanking can also allow much greater resolution and refresh rates on systems with relatively low pixel clock restrictions, such as [[IMPACT]] boards. Using reduced blanking, even low end [[IMPACT]] systems have been proven to support resolutions of 1920x1200 at ~60 FPS. |
| + | |
| + | == Compiling a Custom .vfo/.sdb file == |
| | | |
| Creating and using a custom vfo file for an [[Silicon Graphics|SGI]] computer is a multi-step process. | | Creating and using a custom vfo file for an [[Silicon Graphics|SGI]] computer is a multi-step process. |
Line 42: |
Line 54: |
| * "vfsname.vfs": Input | | * "vfsname.vfs": Input |
| | | |
− | Using VFC to create a .vfo file for VPro systems is much more straightfoward. An example command for VPro/ODYSSEY boards is: | + | Using VFC to create a .vfo file for VPro systems is more straightforward. An example command for VPro/ODYSSEY boards is: |
| | | |
| <pre> | | <pre> |
Line 53: |
Line 65: |
| * "-o vfsname.sdb": Name of output | | * "-o vfsname.sdb": Name of output |
| * "vfsname.vfs": Input | | * "vfsname.vfs": Input |
| + | |
| + | == Limitations and Workarounds == |
| + | |
| + | All systems: |
| + | # When using a pixel-based (in contrast to a time-based) .vfs input, the total blank lines (HorizontalTotal-HorizontalDisplay) must be divisible by 8. |
| + | |
| + | [[IMPACT]]: |
| + | # Pixel clock cannot exceed 160MHz. |
| + | # Framebuffer usage (total active pixels*bits per pixel) cannot exceed 13.5MB (1RSS) or 27MB (2RSS). |
| + | # Some users [http://forums.irixnet.org/thread-1152.html have noted visual artifacts] on [[IMPACT]] systems with modern LCDs using high resolutions (such as 1920x1080) and the monitor's native EDID resolution. These artifacts have been reduced or eliminated by incrementally increasing the blanking in the custom .vfs file. |
| + | |
| + | [[VPro]]: |
| + | # Vertical display lines cannot exceed 2048. |
| + | # V6/V8 cards cannot have a pixel clock between 109MHz and 193MHz. See [[V6/V8 Pixel Clock Issues]]. |
| + | # DCD-equipped VPros require dual channel display modes (2@) with a horizontal resolution that is a multiple of 64. |
| + | |
| + | [[SGI O2]]: |
| + | # 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. |
| | | |
| == Example VFO Files == | | == Example VFO Files == |
| | | |
− | NOT Attached are a number of video format object (vfo) files sorted by target resolution. The intended graphics hardware platform within each listed resolution can be identified by the file prefix. Currently all include reduced blanking, indicated by the letters "rb" following the refresh rate (e.g. [[VPro|V10]]-V12_1920x1200_60rb.vfo). The reduced blanking modelines used were generated with the [[IRIX]] port of CVT graciously provided by rooprob. | + | <s>NOT Attached are a number of video format object (vfo) files sorted by target resolution. The intended graphics hardware platform within each listed resolution can be identified by the file prefix. Currently all include reduced blanking, indicated by the letters "rb" following the refresh rate (e.g. [[VPro|V10]]-V12_1920x1200_60rb.vfo). The reduced blanking modelines used were generated with the [[IRIX]] port of CVT graciously provided by rooprob. |
| | | |
| '''Please note that the attached vfo files may not work with every [[Monitors_on_SGI_Machines|monitor]].''' Some [[Monitors_on_SGI_Machines|monitors]] many not support reduced blanking or may require a source file specifically tailored from EDID data or a manufacturer provided modeline. I'll consider creating those (or resolutions not currently included) on a case-by-case basis, just post a request in this thread. | | '''Please note that the attached vfo files may not work with every [[Monitors_on_SGI_Machines|monitor]].''' Some [[Monitors_on_SGI_Machines|monitors]] many not support reduced blanking or may require a source file specifically tailored from EDID data or a manufacturer provided modeline. I'll consider creating those (or resolutions not currently included) on a case-by-case basis, just post a request in this thread. |
Line 143: |
Line 173: |
| V8-V10-V12_1920x1200_60rb.vfo [8.38 KiB] | | V8-V10-V12_1920x1200_60rb.vfo [8.38 KiB] |
| | | |
− | IR_1920x1200_60rb.vfo [17.58 KiB] | + | IR_1920x1200_60rb.vfo [17.58 KiB] </s> |
| | | |
| == See also == | | == See also == |
| + | * [[Vfc-Database]] |
| + | * [[VFO-Database]] |
| * ftp://ftp.atlas.altexxa.net/software/sgi/misc/vfo/ Contains a few pre-compiled vfo files for VPro systems | | * ftp://ftp.atlas.altexxa.net/software/sgi/misc/vfo/ Contains a few pre-compiled vfo files for VPro systems |
| * https://github.com/callahan-44/sgivfo Github page with several precompiled 1080p and 1920x1200 .vfo and .sdb files as well as an Excel-based .vfs calculator. | | * https://github.com/callahan-44/sgivfo Github page with several precompiled 1080p and 1920x1200 .vfo and .sdb files as well as an Excel-based .vfs calculator. |
Line 154: |
Line 186: |
| * https://github.com/linuxhw/EDID An expansive EDID repository for thousands of monitors. | | * https://github.com/linuxhw/EDID An expansive EDID repository for thousands of monitors. |
| * http://www.playtool.com/pages/dvicompat/dvi.html Detailed information on monitor formats | | * http://www.playtool.com/pages/dvicompat/dvi.html Detailed information on monitor formats |
| + | * https://gainos.org/~elf/sgi/nekonomicon/forum/3/16725755/1.html |
| | | |
| [[Category:SGI]] | | [[Category:SGI]] |