![搭载英特尔显卡的 Ubuntu Xorg 20.04 出现屏幕撕裂](https://linux22.com/image/1068360/%E6%90%AD%E8%BD%BD%E8%8B%B1%E7%89%B9%E5%B0%94%E6%98%BE%E5%8D%A1%E7%9A%84%20Ubuntu%20Xorg%2020.04%20%E5%87%BA%E7%8E%B0%E5%B1%8F%E5%B9%95%E6%92%95%E8%A3%82.png)
我对 Linux 和 Ubuntu 还不太熟悉。昨天刚刚在我的 ASUS ZenBook S13 上将其换成了 Windows 10。
我注意到很多画面撕裂,不仅是在快速移动的视频中,甚至当我将鼠标悬停在存档管理器中的文件上或在 Firefox 中滚动时也是如此(是的,我已经激活了Firefox 内部 VSync 选项)。
我尝试了一些方法,例如Tear Free true
在20-intel.conf
文件中。这个选项解决了我的撕裂问题,但带来了另一个更大的问题。看看它对我的桌面做了什么。但这些只出现在我的桌面上,而不出现在浏览器等其他窗口上,而且它们会有所不同,有时是 3 个。
Wayland 似乎也解决了这个问题,但是有几个原因让我不想使用 Wayland,比如没有分数缩放、抗锯齿效果较差以及光标在系统窗口(如终端或设置)上的大小是原来的两倍这个奇怪的错误。
当我激活文件中的其他选项20-intel.conf
(例如Triple buffer true
或 )时Accel method uxa
,我无法登录,只有当我使用 Wayland 时才可以。
我的期望是,我可以使用正常的 Ubuntu(没有 Wayland)而不会出现任何屏幕撕裂。
我提供了有关我的 VGA 控制器和下面我的文件的当前状态的信息20-intel.conf
。
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (Whiskey Lake) (prog-if 00 [VGA controller])
DeviceName: VGA
Subsystem: ASUSTeK Computer Inc. UHD Graphics 620 (Whiskey Lake)
Flags: bus master, fast devsel, latency 0, IRQ 146
Memory at b0000000 (64-bit, non-prefetchable) [size=16M]
Memory at a0000000 (64-bit, prefetchable) [size=256M]
I/O ports at 3000 [size=64]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: i915
Kernel modules: i915
20-intel.conf
:
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
# Option "AccelMethod" "uxa"
Option "TearFree" "true"
# Option "TripleBuffer "true"
EndSection
答案1
不幸的是,这对我来说不起作用。我可以通过修改/etc/X11/xorg.conf.d/20-intel-graphics.conf
文件以包含 DRI3 来修复这个问题,我发现这里
Section "Module"
Load "dri3"
EndSection
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "DRI" "3"
EndSection
答案2
我通过替换包含以下配置来解决了这个/etc/X11/xorg.conf.d/20-intel.conf
问题/usr/share/X11/xorg.conf.d/20-intel.conf
:
Section "Device"
Identifier "Intel Graphics"
Driver "modesetting"
EndSection
我不再有撕裂感并且能够使用 waylandfree Ubuntu。:)
希望这对任何人都有帮助!
PS:我使用以下方法测试了撕裂情况这个 YouTube 视频(癫痫警告!)并且像中风一样移动窗户。
答案3
以上方法都不适用于我,但我发现了一些简单的方法:
xrandr --output HDMI3 --transform 1,0,-1,0,1,-1,0,0,1
这会将屏幕向下移动一个像素,向右移动一个像素。我确实会丢失一行和一列的像素,但它会阻止鼠标指针击中左边缘或上边缘,而这似乎是我遇到的这种情况的诱因。
答案4
您可以尝试在 SMplayer 或 Xorg 中的其他播放器中禁用纵横比,这对我来说已经解决了该问题。
编辑:你试过使用合成器吗?比如 kwin/Picom,可以轻松修复撕裂,也适用于 AMD