[pkg-nvidia-devel] r413 - /packages/nvidia-settings/trunk/doc/FRAMELOCK.txt
rdonald at users.alioth.debian.org
rdonald at users.alioth.debian.org
Tue Jun 24 17:28:49 UTC 2008
Author: rdonald
Date: Tue Jun 24 17:28:49 2008
New Revision: 413
URL: http://svn.debian.org/wsvn/pkg-nvidia/?sc=1&rev=413
Log:
new upstream
Added:
packages/nvidia-settings/trunk/doc/FRAMELOCK.txt
Added: packages/nvidia-settings/trunk/doc/FRAMELOCK.txt
URL: http://svn.debian.org/wsvn/pkg-nvidia/packages/nvidia-settings/trunk/doc/FRAMELOCK.txt?rev=413&op=file
==============================================================================
--- packages/nvidia-settings/trunk/doc/FRAMELOCK.txt (added)
+++ packages/nvidia-settings/trunk/doc/FRAMELOCK.txt Tue Jun 24 17:28:49 2008
@@ -1,0 +1,153 @@
+
+This is a (very) brief summary of some of things that need to be
+done to write a Frame Lock NV-CONTROL client.
+
+
+-------------------------------------------------------------------------------
+Section 1 - Writing a Frame Lock client for NV-CONTROL 1.8 (and earlier)
+
+
+Please see the sample NV-CONTROL clients in the "samples" directory
+for basic examples of how to set integer attributes. See the
+file ctkframelock.c for a much more involved example of how the
+nvidia-settings utility programs the Frame Lock attributes.
+
+The constants referenced below are defined in NVCtrl.h. Please see the
+comments in that file for an explanation of each attribute. It may
+also be instructive to grep ctkframelock.c to see how each attribute
+is used.
+
+Basic steps:
+
+ - Open a Display connection to each X Screen you want to control
+ in your Frame Lock cluster. Please make sure you have
+ priviledges to establish the X connection.
+
+ - Query the NV_CTRL_FRAMELOCK attribute to determine if Frame Lock
+ is supported on each X screen.
+
+ - Set NV_CTRL_FRAMELOCK_MASTER to NV_CTRL_FRAMELOCK_MASTER_TRUE on
+ one node in the cluster; set it to NV_CTRL_FRAMELOCK_MASTER_FALSE
+ to every other node in the cluster.
+
+ - Set NV_CTRL_FRAMELOCK_POLARITY for each slave node in the cluster;
+ most likely you want NV_CTRL_FRAMELOCK_POLARITY_RISING_EDGE.
+
+ - Set NV_CTRL_FRAMELOCK_SYNC_DELAY as appropriate for each node.
+ Most likely you want 0.
+
+ - Set NV_CTRL_FRAMELOCK_SYNC_INTERVAL as appropriate if you
+ are using house sync. Most likely, you just want 0.
+
+ - Set NV_CTRL_FRAMELOCK_SYNC to NV_CTRL_FRAMELOCK_SYNC_ENABLE on
+ each X screen to enable FrameLock.
+
+ - (optional) set NV_CTRL_FRAMELOCK_TEST_SIGNAL to
+ NV_CTRL_FRAMELOCK_TEST_SIGNAL_ENABLE followed immediately by
+ NV_CTRL_FRAMELOCK_TEST_SIGNAL_DISABLE. This guarantees
+ accuracy of the Universal Frame Count (as returned by
+ glXQueryFrameCountNV()).
+
+ - When you are done, set NV_CTRL_FRAMELOCK_SYNC to
+ NV_CTRL_FRAMELOCK_SYNC_DISABLE on each X screen to disable Frame Lock.
+
+During operation, you can also query any of these on each X screen:
+
+ NV_CTRL_FRAMELOCK_PORT0_STATUS
+ NV_CTRL_FRAMELOCK_PORT1_STATUS
+ NV_CTRL_FRAMELOCK_HOUSE_STATUS
+ NV_CTRL_FRAMELOCK_SYNC_READY
+ NV_CTRL_FRAMELOCK_STEREO_SYNC
+ NV_CTRL_FRAMELOCK_ETHERNET_DETECTED
+ NV_CTRL_FRAMELOCK_SYNC_RATE
+ NV_CTRL_FRAMELOCK_TIMING
+
+(nvidia-settings registers a gtk+ timeout function and queries the
+state of these on each X screen every few seconds).
+
+
+
+-------------------------------------------------------------------------------
+Section 2 - Writing a Frame Lock client for NV-CONTROL 1.9 (and later)
+
+Configuration of Frame Lock has changed in NV-CONTROL 1.9. There are two
+major differences:
+
+ - Display Devices (instead of X Screens) are now selected as the clients &
+ slaves of a Frame Lock group.
+
+ - Frame Lock attributes should now be set/queried on GPUs
+ (NV_CTRL_TARGET_TYPE_GPU) and G-Sync (Frame Lock) devices
+ (NV_CTRL_TARGET_TYPE_FRAMELOCK) using the new NV-CONTROL targeting API.
+
+Please see the sample NV-CONTROL clients in the "samples" directory
+for basic examples of how to use the new targeting API (nv-control-targets.c),
+and a basic Frame Lock client (nv-control-framelock.c). See the file
+ctkframelock.c for a much more involved example of how the nvidia-settings
+utility programs the Frame Lock attributes.
+
+The constants referenced below are defined in NVCtrl.h. Please see the
+comments in that file for an explanation of each attribute. It may
+also be instructive to grep ctkframelock.c to see how each attribute
+is used.
+
+Querying frame lock capabilities of a system:
+
+ - Query the number of G-Sync devices on the system by passing
+ NV_CTRL_TARGET_TYPE_FRAMELOCK to XNVCTRLQueryTargetCount()
+
+ - Query the GPUs attached to each g-sync device by querying the
+ NV_CTRL_GPUS_USING_FRAMELOCK attribute for each g-sync device.
+
+ - Query the enabled (available) display devices on each GPU through
+ the NV_CTRL_ENABLED_DISPLAYS attribute.
+
+Configuring the Frame Lock group (This must be done while Frame Lock Sync is
+disabled on the GPU/G-Sync Device):
+
+ - Set the Frame Lock Master Display Device on one of the GPUs through the
+ NV_CTRL_FRAMELOCK_MASTER attribute.
+
+ - Set the rest of the display devices as slaves through the
+ NV_CTRL_FRAMELOCK_SLAVES attribute.
+
+ - Set NV_CTRL_USE_HOUSE_SYNC to NV_CTRL_USE_HOUSE_SYNC_TRUE or
+ NV_CTRL_USE_HOUSE_SYNC_FALSE on the master g-sync device (this is the
+ g-sync device that is attached to the GPU that contains the display
+ device currently set as the frame lock master.) Depending on whether
+ or not you will be using a House Sync signal.
+
+ - Set NV_CTRL_FRAMELOCK_POLARITY for each slave G-Sync device in the
+ cluster; most likely you want NV_CTRL_FRAMELOCK_POLARITY_RISING_EDGE.
+
+ - Set NV_CTRL_FRAMELOCK_SYNC_DELAY as appropriate for each G-Sync device.
+ Most likely you want 0.
+
+ - Set NV_CTRL_FRAMELOCK_SYNC_INTERVAL as appropriate if you
+ are using house sync. Most likely, you just want 0.
+
+Enabling/Disabling Frame Lock:
+
+ - Enable Frame Lock on each GPU by setting NV_CTRL_FRAMELOCK_SYNC
+ to NV_CTRL_FRAMELOCK_SYNC_ENABLE.
+
+ - (optional) set NV_CTRL_FRAMELOCK_TEST_SIGNAL to
+ NV_CTRL_FRAMELOCK_TEST_SIGNAL_ENABLE followed immediately by
+ NV_CTRL_FRAMELOCK_TEST_SIGNAL_DISABLE (on the GPU that contains the
+ master Frame Lock display device.) This guarantees accuracy of the
+ Universal Frame Count (as returned by glXQueryFrameCountNV()).
+
+ - When you are done, set NV_CTRL_FRAMELOCK_SYNC to
+ NV_CTRL_FRAMELOCK_SYNC_DISABLE on each GPU to disable Frame Lock.
+
+During operation, you can also query any of these on each GPU or Frame Lock
+device:
+
+ NV_CTRL_FRAMELOCK_PORT0_STATUS
+ NV_CTRL_FRAMELOCK_PORT1_STATUS
+ NV_CTRL_FRAMELOCK_HOUSE_STATUS
+ NV_CTRL_FRAMELOCK_SYNC_READY
+ NV_CTRL_FRAMELOCK_STEREO_SYNC
+ NV_CTRL_FRAMELOCK_ETHERNET_DETECTED
+ NV_CTRL_FRAMELOCK_SYNC_RATE
+ NV_CTRL_FRAMELOCK_TIMING
More information about the Pkg-nvidia-devel
mailing list