Heyyo,
I’ve actually written up an extensive Wiki of my knowledge of SLI in Linux on the Antergos Wiki here:
http://wiki.antergos.com/nvidia#SLI_Application_Profiles_for_ID_Tech_4_Engine_Games_on_Antergos_Linux
NOTE!!! Even though I specifically wrote this for Antergos (based off Arch)? It works on ANY Linux Distro.
SLI / Multi-GPU on Antergos (and Linux in general)
NOTE: This was last tested with nVidia 337.25 drivers… despite these drivers adding support for the GTX Titan Z, a Multi-GPU videocard it still does not support SLI… so the GTX Titan Z is reduced to a single GTX Titan in Linux… same goes for other nVidia Multi-GPU cards such as the GTX 690. sad
With the introduction of SteamOS, nVidia has been increasing their support on the Linux platform dramatically compared to even a few years ago. Many long-awaited features such as nVidia’s Optimus finally has support (right now in a basic state) on Linux via nVidia Prime and newer GPU’s get support at a more respectable pace. SLI is supported… BUT, sadly SLI is still in an extremely primitive state.
For more information, please read SLI & Multi-GPU section of the ReadMe included with nVidia’s drivers for Linux.(external link)
Current limitations (last tested on 337.25) on nVidia’s drivers are as follows:
- Linux only support SLI & Multi-GPU (Two-GPUs-on-one cards such as the GTX 690) can be enabled, but only via commant promts in the Terminal.
- Only works on desktop platforms, SLI on mobile GPU's is unsupported
- Only ID Tech 4 Engine games are officially supported in SLI by creating an "Application Profile" with GLDoom3 set to "true". Games on ID Tech 4 engine includes Quake 4, Enemy Territory: Quake Wars, Doom 3, Prey and Open Source games on ID Tech 4 include The Dark Mod.
- GPUs with ECC enabled may not be used in an SLI configuration
- SLI on Quadro-based graphics cards always requires a video bridge
- TwinView is also not supported with SLI or Multi-GPU. Only one display can be used when SLI or Multi-GPU is enabled, with the exception of Mosaic.
- If X is configured to use multiple screens and screen 0 has SLI or Multi-GPU enabled, the other screens configured to use the nvidia driver will be disabled. Note that if SLI or Multi-GPU is enabled, the GPUs used by that configuration will be unavailable for single GPU rendering.
- Alternate Frame Rendering (AFR) and Split Frame Rendering (SFR) are supported in Linux. AFR2 is not supported nor is it planned for Linux.
Alternate Frame Rendering (AFR) is supported. This SLI mode uses each card to render one frame then the next card renders the following. For example, in two-way AFR, GPU1 renders frames 1, 3, 5, etc. and GPU2 renders 2, 4, 6, etc. Outside of the ID Tech 4 engine Alternate Frame Rendering does not work on any card other than the first which causes framerates to drop by 50%. This is a known bug and nVidia are currently working on this issue.
[.SLI Profiles are NOT included with the drivers unlike the Windows version of the nVidia drivers. They must be manually created for ID Tech 4 Engine-based games. To learn how to make them yourself, please read the Creating Application Profiles section of this wiki page.
- Split Frame Rendering (SFR) is also supported. This mode uses the first GPU to render the top half of the screen, and the second GPU to render the bottom half. This mode also does not function correctly outside of ID Tech 4. It will still render the full screen, but only at the speed of a single GPU.
Alternate Frame Rendering mode 2 (AFR2) is NOT supported in Linux. This mode is opposite of Alternate Frame rendering by instead using the last GPU as the primary, and every GPU above it as the next in line. For example, in three-way AFR2? GPU3 renders frames 1, 4, 7, etc. GPU2 renders frames 2, 5, 8, etc. and GPU1 renders frames 3, 6, 9, etc. In Windows, AFR2 is the preferred SLI mode as it tends to yeild higher performance over AFR. My theory is because GPU1 is the primary card for video out, it uses a different GPU for the primary calculations it better balances the work load. I have not seen any documentation as to the specific reason AFR2 performs better.
Despite what was mentioned above, if you wish to try SLI / Multi-GPU? Here’s how to enable it via the terminal.
Open up Terminal
use the following command of your choice.. sli=on (enables SLI) sli=auto (Allows nvidia-xconfig to automatically enable SLI if it detects an SLI-ready setup) sli=afr (enables SLI in AFR mode) sli=sfr (enables SLI in SFR mode)
terminal commands
sudo nvidia-xconfig -sli=on
sudo nvidia-xconfig -sli=auto
sudo nvidia-xconfig -sli=afr
sudo nvidia-xconfig -sli=sfr
sudo nvidia-xconfig -sli=off
Put in your password
Reboot Antergos (sudo reboot via terminal or via the GUI)
Open up the “nVidia X Server Settings” program
Select any GPU in the list, and look for the screen output. If SLI is indeed enabled? It will say “(SLI)” at the end of the detected screen output.
The Only difference is if you have a Multi-GPU (such as the GTX 690) you change the argument of sli to multigpu.
terminal commands
sudo nvidia-xconfig -multigpu=on
sudo nvidia-xconfig -multigpu=auto
sudo nvidia-xconfig -multigpu=afr
sudo nvidia-xconfig -multigpu=sfr
sudo nvidia-xconfig -multigpu=off
If you have Multi-GPU cards in your system in SLI (such as two GTX 690’s with the appropriate SLI bridge) you just have to mix the commands together.
terminal commands
sudo nvidia-xconfig -sli=on -multigpu=on
sudo nvidia-xconfig -sli=auto -multigpu=auto
sudo nvidia-xconfig -sli=afr -multigpu=afr
sudo nvidia-xconfig -sli=sfr -multigpu=sfr
sudo nvidia-xconfig -sli=off -multigpu=off
SLI Application Profiles for ID Tech 4 Engine Games on Antergos Linux
To use these application profiles? The easiest way is via the file manager.
Open your File Manager (example, Cinnamon uses Nemo)
go to your "Home" folder
Tap "CTRL" and "H" to toggle hidden folders and files
Go into the ".nv" folder
Open the "nvidia-application-profiles-rc" with your favorite text editor (such as gedit)
Copy and paste the following into the file and save (the last part with "alwaysapplied" is optional but I recommend it for enabling Threaded Optimizations on all OpenGL apps. (Some really old ones might have compatibility issues but you can always make a custom application profile with the "GLThreadedOptimizations" set to "false") :
{
"profiles": [
{
"name": "always-on",
"settings": [
{
"key": "GLThreadedOptimizations",
"value": true
}
]
},
{
"name": "idtech4-app",
"settings": [
{
"key": "GLDoom3",
"value": true
}
]
}
],
"rules": [
{
"pattern": {
"feature": "procname",
"matches": "etqw-rthread.x86"
},
"profile": "idtech4-app"
},
{
"pattern": {
"feature": "procname",
"matches": "etqw.86"
},
"profile": "idtech4-app"
},
{
"pattern": {
"feature": "procname",
"matches": "doom.x86"
},
"profile": "idtech4-app"
},
{
"pattern": {
"feature": "procname",
"matches": "quake4smp.x86"
},
"profile": "idtech4-app"
},
{
"pattern": {
"feature": "procname",
"matches": "quake4"
},
"profile": "idtech4-app"
},
{
"pattern": {
"feature": "procname",
"matches": "prey.x86"
},
"profile": "idtech4-app"
},
{
"pattern": {
"feature": "procname",
"matches": "thedarkmod.x86"
},
"profile": "idtech4-app"
},
{
"pattern": {
"feature": "true",
"matches": ""
},
"profile": "always-on"
}
]
}
Save and exit
Open up the “nVidia X Server Settings” application
Browse to “Application Profiles”
if the “nvidia-application-profiles-rc” didn’t properly load the modified configuration? Click the “Reload” button. It looks like a green circle with two circular arrows.
Closing Notes
I hope this guide helps anyone who wish to learn more about Antergos and Linux in general. I wish you luck and excitement with your adventures in Linux with nVidia hardware. Image
If anyone else has good tips or improvements of course please feel free to modify this. It is my hopes that the nVidia Proprietary Drivers improve further in Linux (mainly in the SLI department coughs wink ) and communtiy involvement will only help further boost this.