我在我的电脑上安装了 Ubuntu 19.04:
- 英特尔 i7 8700k
- NVIDIA 技嘉 GeForce GTX 1080 Ti AORUS Waterforce @NVIDIA-driver-418
- 显示器 ASUS PB287Q @3840x2160 像素
在使用 Ubuntu 的一开始,我就注意到了这个恼人的屏幕撕裂。我以为那只是在 Firefox 中,但是当我摇动窗口时,我看到一条水平线将窗口分成两部分(撕裂)。它发生在每一种窗口或应用程序中。我读了很多,这就是我到目前为止所做的:
- 启用小数缩放,因为我无法以 100% 阅读,而它在 200% 时杀死了我。
我将其设置为 150%:gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"
- ForceFullCompositionPipeline 为 On。首先在 nvidia-settings 中,后来在 中
/usr/share/X11/xorg.conf.d/10-nvidia.conf
,因为我注意到重新启动或关机会重置设置。
输出nvidia-settings -q CurrentMetaMode
:
Attribute 'CurrentMetaMode' (EST:1.0): id=50, switchable=yes, source=RandR ::
DPY-7: nvidia-auto-select @5120x2880 +0+0
{Transform=(1.333328,0.000000,0.000000,0.000000,1.333328,0.000000,0.000000,0.
000000,1.000000), ViewPortIn=5120x2880, ViewPortOut=3840x2160+0+0,
ResamplingMethod=Bilinear, ForceCompositionPipeline=On,
ForceFullCompositionPipeline=On}
我附上了我的10-nvidia.conf
. 很奇怪,如果我开这个,撕裂会立即修复,但我需要不时重新申请它,即使我设置了我的10-nvidia.conf
:
sudo nvidia-settings --assign CurrentMetaMode="nvidia-auto-select
@5120x2880 +0+0 { ViewPortIn=5120x2880, ViewPortOut=3840x2160+0+0,
ResamplingMethod=Bilinear, ForceCompositionPipeline=On,
ForceFullCompositionPipeline=On }"
我想我终于找到了适合自己的解决方案。通过以下步骤,我能够获得无撕裂的体验并设置我的 HiDPI 显示器以获取可读内容。我想避免在设置和显示设备下使用 GNOME 缩放模式(请参阅下面的 GNOME 和 NVIDIA 之间的问题),并通过正确设置 DPI 来解决缩放问题。它没有像我想象的那样工作(DPI 缩放,撕裂是固定的),但是我正在寻找您的反馈。也许它毕竟可以工作。
我不得不处理以下问题:
10-nvidia.conf
.10-nvidia.conf
只是部分修复了它,因为在重新启动或关闭后不时撕裂又回来了。但是,考虑到所有这些问题,我想将所有内容设置回默认值并重新开始。
10-nvidia.conf
除了最初的所有内容Section "OutputClass"
sudo nvidia-settings
导航到“X 服务器显示配置”,选择“配置”并选择“禁用”。我确认了对话并选择尽可能多地应用。之后我做了同样的事情nvidia-settings
(在关闭 NVIDIA 设置后没有 root 执行),以确保安全。gsettings reset org.gnome.mutter experimental-features
以禁用小数缩放。重启和几个谷歌请求之后,我想要一个可以避免 Gnome 的缩放并在 NVIDIA 驱动程序中执行所有 DPI 内容的设置。
设置 10-nvidia.conf:
我通过打开
nvidia-settings
->“X 服务器显示配置”->“保存到 X 配置文件”->“显示预览...”并复制所有这些内容来了解该文件的基础知识。我将
sudo gedit /usr/share/X11/xorg.conf.d/10-nvidia.conf
“显示预览...”的部分粘贴到现有内容中。不要更换。然后我添加/编辑了以下内容(不要复制和粘贴我的文件:):
Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
Option "DPI" "161 x 158"
我认为如果我设置正确,我会通过这样做获得正确的 DPI 缩放:
xdpyinfo | grep -B2 resolution
会输出resolution: 96x96 dots per inch
,但这实际上不是正确的 DPI。通过whtyger 的帖子,我计算了我的 DPI:randr | grep -w connected DP-4 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 621mm x 341mm
x = 62,1 cm
y = 34,1 cm
x = 62,1 cm / 2,54 = 24,4488 尺寸(英寸
) y = 34,1 cm / 2,54 = 13,4252 尺寸(英寸)
x = 3860 像素/24,4 英寸 = 158,1972 DPI
y = 2160 像素/13,4 英寸 = 161,1940 DPI
xrandr --dpi 144
将 DPI 缩放设置为 144%。电脑在命令后没有反应。Strg + Alt + F1 将我带到登录屏幕,我能够在获得 144 DPI 的地方再次登录。然而,它并没有改变 UI 元素的比例因子。desired_DPI / 96
,我得到了 1.50 的缩放因子(144 DPI / 96)。大多数桌面和应用程序元素现在都是可读的,我避免在显示设备下使用 GNOME 缩放模式。Option "Composite" "Enable"
并希望获得更好的性能而不会撕裂。魔术修复到位后,我没有注意到任何更好的性能,因为撕裂已经修复ForceCompositionPipeline
sudo nvidia-settings
“OpenGL设置”并禁用“同步到VBlank”并激活“允许翻转”。最后的想法:
整体感觉好多了,撕逼死了。但是我仍然无法相信 60 Hz 的速度会这么慢。所以当我疯狂地摇晃窗户时,我仍然看到很多窗户的重影。我可以再次使用烈焰射击!如果我使用夜间模式并启动 nvidia-settings,则夜间模式会因干扰该模式而结束。幸运的是,Windows 也在打同样的仗。
我希望我没有写太多,并且我可以帮助他或他的问题。我期待着反馈。
参考:
如何在 Ubuntu 19.04 中启用分数缩放
如何在 Linux 中处理 Hi-Dpi 屏幕
如何查找和更改屏幕 DPI?
GNOME Tweak Tool
HiDPI
Nvidia 专有驱动程序 DPI 设置
Xorg
屏幕撕裂与更新的 nVidia GPU
10-nvidia.conf - 不要复制/粘贴: