我似乎遇到了 Ubuntu 18.04 屏幕撕裂的问题,通过运行此测试得到了证实:
https://www.youtube.com/watch?v=MfL_JkcEFbE
我在 Google 上搜索了一段时间,但我找到的都是更改文件/etc/modprobe.d/nvidia-drm-nomodeset.conf
并添加的建议
options nvidia-drm modeset=1
但那并没有什么作用。
这些是我正在使用的驱动程序:
我要做什么才能修复这个问题?
更新:
这是我的 X 配置:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 418.56
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "Module"
Load "dbe"
Load "extmod"
Load "type1"
Load "freetype"
Load "glx"
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"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "DELL U2719D"
HorizSync 30.0 - 90.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 970"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-4"
Option "metamodes" "DP-2: nvidia-auto-select +1080+618, DP-0: nvidia-auto-select +0+0 {rotation=right}"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
答案1
我的笔记本电脑有同样的卡,没有撕裂。但请注意,我使用的是 384 版本,并且不希望使用更高的版本号,这可能会使我的设置复杂化。在系统设置过程中,我采取了通常的技巧,咨询了 Arch Linux 的圣经建议:
Section "Device"
Identifier "Nvidia Card"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 1050 Ti"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
Option "metamodes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}"
Option "AllowIndirectGLXProtocol" "off"
Option "TripleBuffer" "on"
EndSection
全合成流水线和三重缓冲区是最重要的。
今天我的设置是这样的:
$ cat /etc/X11/xorg.conf
Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection
Section "Monitor"
Identifier "DP-1-1"
Modeline "3840x2160_54.00" 637.50 3840 4152 4568 5296 2160 2163 2168 2230 -hsync +vsync
Option "PreferredMode" "3840x2160_54.00"
EndSection
Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "PCI:0@0:2:0"
Option "AccelMethod" "None"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1@0:0:0"
Option "ConstrainCursor" "off"
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration" "on"
Option "IgnoreDisplayDevices" "CRT"
EndSection
请注意,这里未设置强制组合管道和三重缓冲区。它以前在nvidia-settings
GUI 配置中,但现在我再也看不到它了。