Genlock/Frame lock Extensions
NVIDIA provides a set of API extensions for Linux (X and GLX) and Microsoft® Windows® (WGL) operating systems to enable applications to take maximum advantage of NVIDIA’s Quadro FX 4400G and 3000G hardware capabilities.
Descriptions of the most common extensions are provided. For additional information—such as the complete list of extensions and capabilities, plus programming guidelines—please refer to the NVIDIA Frame Lock User’s Guide, available to registered developers through NVDeveloper at http://nvdeveloper.nvidia.com.
WGL_NV_swap_group (Windows), GLX_NV_swap_group (Linux)
This extension provides the capability to synchronize buffer swaps in a group of OpenGL windows. A “swap group” is created, and then windows are added as members to the swap group. Buffer swaps to members of the swap group can then take place concurrently. A “swap barrier” can also be created to synchronize swaps between systems.
The extension also provides a universal frame counter among systems locked together by swap groups/barriers. It is based on the internal synchronization signal that triggers the buffer swap.
The genlock extensions allows application control of the genlock features. Genlock is used to synchronize monitor refresh to an external signal.
Five parameters can be used to control genlock:
- Source selection
- Source sample edge
- Source sample rate
- Source delay
The NV-CONTROL X extension provides a mechanism for X clients to query and set configuration parameters of the NVIDIA accelerated graphics driver on XFree86. The state set by the NV-CONTROL X extension is assumed to be persistent only for the current server generation. Attributes are configurable on a per-X screen basis, and some attributes are also configurable on a per-display device basis.
Some attributes can only be queried, though most can be both queried and modified. The NV-CONTROL extension can determine what values are valid for an attribute, if an attribute is read-only, if it can be read and written, if it requires a display device qualifier, and if the attribute is available on the specified X screen. NV-CONTROL clients may also request notification when an attribute is changed by another NV-CONTROL client.
The NVIDIA Control Panel for Linux is, in fact, a sample implementation of the NV Control X extension and is available open-source to be customized, configured, and modified.