Linux GUI NVIDIA Setup and Hacks
Performance mode
You can change the performance mode either from the GUI via NVIDIA X Server Settings
tool: PowerMizer
> Performance Mode
– see Figure 1. You can change the default performance mode by changing xorg.conf
or you can change it via the CLI by the following commands.
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=0 # Adaptive
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1 # Prefer Maximum Performance
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=2 # Auto
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=3 # Prefer Consistent Performance
Deal with the bad vSync on full screen video
Topics about such issue could be found in Internet back to 2010. Most of the proposed solutions doesn't do anything with latest NVIDIA driver (525 2003y). The only discussion that was helpful to me was NVIDIA Video Tearing at Ubuntu forums and especially the advice related to xorg.conf
. Also I didn't changed the OpenGL related settings proposed in the linked comment.
In addition I've forced the full composition pipeline – see Figure 2, which I was found as advice somewhere within my research…
So the steps that (I hope) solved the problem for me was:
- Run:
sudo nvidia-xconfig
- Open
nvidia-settings
and check theForce Full Composition Pipeline
option – Fig 2, you will need to enableAdvanced
options. - Generate new
xorg.conf
from withinnvidia-settings
and copy the the lineOption "metamodes" …
from theScreen
section. - Modify the
Device
section in that filexorg.conf
, as it is proposed in the mentioned discussion NVIDIA Video Tearing. - Place the new configuration file in its place:
/etc/X11/xorg.conf
and reboot the system, just to be sure the settings are permanently applied.
Here is my final xorg.conf
configuration.
/etc/X11/xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 525.105.17
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
Option "DPMS"
EndSection
Section "Device"
# Nvidia Video Tearing: https://ubuntuforums.org/showthread.php?t=2235382&p=13079406#post13079406
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "NVIDIA T600"
Option "RegistryDwords" "PerfLevelSrc=0x2222"
Option "TripleBuffer" "True"
# PowerMizer: https://forums.developer.nvidia.com/t/how-to-automatically-set-powermizer-to-prefer-maximum-performace-with-340-and-346-drivers/37980
# Option "Coolbits" "13"
# Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerDefaultAC=0x1"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "metamodes" "DP-7: nvidia-auto-select +2560+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, DP-1: nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}; DP-7: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1920x1080 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1920x1080_60_0 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1920x1080_50 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1920x1080_30 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1680x1050 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1600x900 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1280x1024 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1280x1024_60 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1280x720 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1280x720_60_0 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1280x720_50 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1152x864 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1024x768 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 1024x768_60 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 800x600 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 800x600_60 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 720x576 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 720x480 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 640x480 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 640x480_60 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: 640x480_60_0 +0+0; DP-7: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+0 {viewportin=1440x900, viewportout=1728x1080+416+0}; DP-7: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+0 {viewportin=1366x768, viewportout=1920x1080+320+0}; DP-7: nvidia-auto-select +0+0, DP-1: nvidia-auto-select +0+0 {viewportin=1280x800, viewportout=1728x1080+416+0}"
SubSection "Display"
Depth 24
EndSubSection
EndSection