Appendix V. SLI FrameRendering

This driver contains support for the NVIDIA SLI FrameRendering. SLI FrameRendering allows an OpenGL application to take advantage of two graphics cards at the same time to improve performance.

In Linux, SLI can operate in one of three modes: Alternate Frame Rendering (AFR), Split Frame Rendering (SFR), and SLI Antialiasing (SLIAA). When AFR mode is active, one GPU draws the next frame while the other one works on the frame after that. In SFR mode, each frame is split horizontally into two pieces, with one GPU rendering each piece. The split line is adjusted to balance the load between the two GPUs. SLIAA mode splits antialiasing work between the two GPUs. Both GPUs work on the same scene and the result is blended together to produce the final frame. This mode is useful for applications that spend most of their time processing with the CPU and cannot benefit from AFR.

SLI is enabled by setting the "SLI" option in the X configuration file; see Appendix D, X Config Options for more details about the SLI option.

The nvidia-xconfig utility can be used to set the SLI option, rather than modifying the X configuration file by hand. For example:

    % nvidia-xconfig --sli=on

See Appendix D, X Config Options for more details about the SLI option.

SLI requires two identical PCI-Express graphics cards, a supported motherboard chipset, and in most cases a "video bridge" connecting the two graphics cards. Please note that no mobile GPUs are supported, and SLI on Quadro always requires a video bridge.

For the latest in supported SLI configurations, including SLI-capable GPUs and SLI-capable motherboards, please see http://www.slizone.com.

Only one display can be used when SLI is enabled. If X is configured to use multiple screens and screen 0 has SLI enabled, the other screens will be disabled. TwinView is also not supported with SLI.

V.1. Frequently Asked SLI Questions

Why is glxgears slower when SLI is enabled?

When SLI is enabled, the NVIDIA driver must coordinate the operations of both GPUs when each new frame is swapped (made visible). For most applications, this GPU synchronization overhead is negligible. However, because glxgears renders so many frames per second, the GPU synchronization overhead consumes a significant portion of the total time, and the framerate is reduced.

Why is Doom 3 slower when SLI is enabled?

The NVIDIA Accelerated FreeBSD Driver Set does not automatically detect the optimal SLI settings for games such as Doom 3 and Quake 4. To work around this issue, the environment variable __GL_DOOM3 can be set to tell OpenGL that Doom 3's optimal settings should be used. In Bash, this can be done in the same command that launches Doom 3 so the environment variable does not remain set for other OpenGL applications started in the same session:

    % __GL_DOOM3=1 doom3

Doom 3's startup script can also be modified to set this environment variable:

    #!/bin/sh
    # Needed to make symlinks/shortcuts work.
    # the binaries must run with correct working directory
    cd "/usr/local/games/doom3/"
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
    export __GL_DOOM3=1
    exec ./doom.x86 "$@"

This environment variable is temporary and will be removed in the future.