在Ubuntu Xorg 20.04上使用Intel显卡时出现屏幕撕裂问题。

我对Linux和Ubuntu还比较新手。昨天刚把它换成了我的ASUS ZenBook S13上的Windows 10。 我注意到屏幕撕裂的情况非常严重,不仅在快速移动的视频中出现,甚至当我在存档管理器中悬停文件或在Firefox中滚动时也会出现(是的,我已经启用了Firefox内部VSync选项)。 我尝试了一些方法,比如在20-intel.conf文件中设置Tear Free true。这个选项解决了我的撕裂问题,但又引发了另一个更大的问题。只是看看它对我的桌面做了什么。但这些问题只出现在我的桌面上,而不是其他窗口,比如浏览器,而且它们是多变的,有时候是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
5个回答

这对我来说不起作用,不幸的是。我能够通过修改我的/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

它在我的ThinkPad L480上与Intel Graphics 620完美配合,效果非常好。 - stz184
在Ubuntu Mate 20.04上,配备Intel UHD 520,它的表现非常出色。 - NicolasSmith
1在Xubuntu 20.04上,与Intel HD Graphics 4000配合使用效果良好。 - Eren Seymen
3哼,我没有这个文件。我甚至在“/etc/X11”目录中也看不到“xorg.conf.d”。 - Mikhail
我也不是。它是由Jaroslav编辑的。这里是在/etc/X11/xorg.conf上。 - Jkasnese
我在/etc/X11中添加了自己的xorg.conf文件,并且通过这样做解决了屏幕撕裂的问题! - Raceimaztion
3这对我来说确实停止了撕裂,但是破坏了一些应用程序。Firefox需要禁用硬件加速才能正常工作。Signal和其他应用则不需要。至于@Rene,我的文件位置在/usr/share/X11/xorg.conf.d。 - Jobu
1对我来说停止了撕裂,由于某种原因,在/usr/share/X11/xorg.conf.d中有一个am 10-amdgpu.conf文件,我只是覆盖了它的内容,问题就解决了(当然备份了一份)。 - Fuseteam
它停止了撕裂,但没有任何视频应用程序能够正常工作(Zoom、cheese)。它还破坏了vscode,但我可以通过禁用硬件加速来修复这个问题。 - Bach
在Debian上也解决了撕裂问题。直到我通过HDMI在我的4K电视上播放一些4K视频之前,我从未注意到撕裂现象。奇怪的是,我有英特尔芯片组,但我的Debian运行的是10-amdgpu.conf。我尝试添加20-intel.conf时遇到了很多麻烦,整个桌面环境崩溃后,系统只能提示命令行界面。然后我像@Fuseteam一样操作并解决了问题。为什么?为什么要使用10-amdgpu.conf呢? - memoricab
如果启用了“DRI”和“3”,但没有启用“TearFree”和“true”,在i5-6500上仍然会出现明显的撕裂。我必须加载dri3并同时使用这两个选项才能完全消除撕裂。 - Amigo Chan

我通过将/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
我不再有撕裂问题了,现在可以使用Wayland免费版的Ubuntu。 :) 希望这对大家有所帮助! 附注: 我通过这个YouTube视频(注意:可能引发癫痫)和像中风一样移动窗口来测试了撕裂问题。

等一下,暂时不要介意这个答案。我怀疑这个撕裂的问题与我使用的分数缩放有关。当我打开它时,又会出现撕裂现象,而关闭分数缩放后,撕裂就消失了。让我调查一下这个问题。 - René Jörg Spies
好的,刚刚发现在没有使用分数缩放时,我的屏幕完全没有撕裂,并且只有在使用分数缩放时不移动鼠标指针才没有撕裂。所以,当我移动鼠标指针时,我的屏幕就会变成 /////\////。 - René Jörg Spies
只有当我将显示器缩放到某种奇怪的比例,如125%的分数缩放时,才会出现撕裂现象。当我将其缩放到100%并启用分数缩放时,撕裂现象就消失了。 - René Jörg Spies
好吧,我现在已经厌倦了测试(因为每次更改配置文件时都需要重新启动,而我的登录密码有23个字符长哈哈)。我只是想看看是否能够找到一些错误报告,并观察会发生什么(我还发现了一个关于分数缩放的错误,它会将我的屏幕缩小到50%或25%,这是由于Canonical的编程相对较弱所致)。 - René Jörg Spies

以上的方法都对我没用,但是我找到了一个简单有效的方法:
xrandr --output HDMI3 --transform 1,0,-1,0,1,-1,0,0,1
这将屏幕向下移动一个像素并向右移动一个像素。我会损失一行和一列的像素,但它可以防止鼠标指针碰到左边或顶部边缘,这似乎是触发这种行为的原因。

我正在使用Xubuntu 18.04,并且拥有以下英特尔图形处理器:
$ inxi -G
Graphics:  Card: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller
           Display Server: x11 (X.Org 1.19.6 ) driver: intel Resolution: 1920x1080@59.93hz
           OpenGL: renderer: Mesa DRI Intel HD Graphics 400 (BSW) version: 4.6 Mesa 20.0.8
我必须在这里添加/更改以下文件:
/usr/share/X11/xorg.conf.d/20-intel.conf
位置可能因为Ubuntu 20.04或更新版本而有所不同。 文件内容如下:
Section "Module"
    Load "dri3"
EndSection

Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    Option      "DRI"   "3"    
    Option "AccelMethod" "sna"
    Option "TearFree" "true"
EndSection

通过这个配置,我解决了屏幕撕裂的问题,测试了Steam Link软件包并玩一些游戏。

选项取自之前的答案和https://bodhilinux.boards.net/thread/277/screen-tearing-issue-solved


您可以尝试在Xorg中禁用SMplayer或其他播放器的纵横比,这对我有帮助。