我使用双显示器,其中一个旋转
xrandr --output HDMI-1 --rotate left
我在使用 Google Chrome 时遇到屏幕撕裂问题(安装于Chrome 的 PPA(不是 Chromium)在两个显示器上都存在,但在旋转的显示器上更明显。我在其他程序中似乎没有遇到屏幕撕裂的情况,例如 gnome-terminal。
我的 GPU 是
$ inxi -G
Graphics: Device-1: Intel UHD Graphics 630 driver: i915 v: kernel
Display: x11 server: X.Org 1.20.4 driver: i915 resolution: 1920x1080~60Hz, 1920x1080~60Hz
OpenGL: renderer: Mesa DRI Intel UHD Graphics 630 (Coffeelake 3x8 GT2) v: 4.5 Mesa 19.0.8
我尝试添加
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "TripleBuffer" "true"
Option "TearFree" "true"
Option "DRI" "false"
EndSection
按照/etc/X11/xorg.conf.d/20-intel-graphics.conf
这个问题,但问题是该命令使我的双显示器充当一个显示器(两个显示器上都显示相同的图片)。我尝试删除TripleBuffer
和DRI
行,但没有任何变化。此副作用在此 Arch Linux 论坛主题可能的解决方案是添加i915.semaphores=1
内核启动参数。我不知道这个 7 年前的建议是否仍然有用,如果我处于可以摆弄内核启动参数的情况,我可能一开始就不会使用 Ubuntu。
我也尝试chrome://flags/#ignore-gpu-blacklist
按照这个问题,但似乎什么都没有改变chrome://gpu/
。
我使用 i3 作为窗口管理器。我使用 X,而不是 Wayland(i3 不支持 Wayland)。
答案1
我在使用最新的 Kubuntu 和适用于 Intel GPU 的 i915 驱动程序 19.10 时也遇到了同样的问题。
我认为通过以下设置就可以让它工作:
--
操作系统:Kubuntu 19.10 KDE Plasma 版本:5.16.5 KDE Frameworks 版本:5.62.0 Qt 版本:5.12.4 内核版本:5.3.2-050302-generic
答案2
我可以修复 i7 Ubuntu 20.04,只需修改我的/etc/X11/xorg.conf
文件以包含 DRI3 即可,如下所示,我发现这里。
Section "Module"
Load "dri3"
EndSection
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "DRI" "3"
EndSection
答案3
您说这种撕裂现象只出现在 i3 窗口管理器中。由于您似乎没有使用任何合成器管理器,因此您应该尝试为您的显卡启用垂直同步。
你需要做的第一件事就是禁用轮询在 drm_kms_helper 驱动程序中。创建新文件/etc/modprobe.d/drm_kms_helper.conf
(或编辑现有文件/etc/modprobe.d/modprobe.conf
),内容如下:
options drm_kms_helper poll=0
必须为您的卡正确配置 i915 模块。内核模式设置必须允许。要配置i915
内核模块,请将以下几行添加到/etc/modprobe.d/i915.conf
:
options i915 modeset=1 # Allow KMS driver to load
options i915 enable_psr=0 # Panel self refresh
options i915 preliminary_hw_support=1 # This option must be enabled for Skylake cards and later
options i915 semaphores=1 # Try this if you have issues with TearFree Xorg option and SNA aceel method
options i915 fastboot=1 # Keep uefi/BIOS provided screen on loading
options i915 enable_rc6=7 enable_fbc=1 lvds_downclock=1 # Power saving features
#options i915 enable_guc=3 # Force loading firmware (No effect in latest kernels)
配置你的 xorg-server:
sudo gedit /etc/X11/xorg.conf.d/20-intel.conf
插入以下行:
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "sna"
Option "DRI" "3"
Option "TearFree" "true"
EndSection
默认情况下,Intel xorg 驱动程序启用 V-sync。
您还应该使用chrome://flags
命令行开关配置 Google Chrome。以下开关可能会有用:
--in-process-gpu
--enable-gpu-vsync
--disable-font-subpixel-positioning
--enable-accelerated-mjpeg-decode
--enable-accelerated-video
--enable-gpu-memory-buffer-compositor-resources
--enable-gpu-memory-buffer-video-frames
--enable-gpu-rasterization
--enable-smooth-scrolling
--enable-zero-copy
--force-gpu-rasterization
--ignore-gpu-blacklist
--enable-features=CheckerImaging
您可以将此开关添加到/etc/{chromium,chromium-browser,google-chrome}/default
重新启动并查看是否解决了您的问题。希望这对您有所帮助!
答案4
当没有屏幕撕裂时,gnome-terminal
这并不奇怪。它不需要高性能图形处理来保持相对静态的显示,没有视频或图形动画。
从另一个问答,多位用户(一,二,三,四,五) 报告称英特尔显卡会导致 Ubuntu >= 16.10 出现严重的屏幕撕裂/闪烁。经常提出的“解决方案”是添加启动参数i915.enable_rc6=0
。
不过,请阅读其他问答中的警告,因为这会导致温度升高,因为英特尔 GPU 不会休眠太多。由于 GPU 不会休眠太多,因此这些人的屏幕撕裂现象已经消失。要添加启动参数,请使用:
sudo -H gedit /etc/default/grub
找到 行并将"quiet splash"
其更改为"quiet splash i195.enable_rc6-0"
。
保存文件,退出gedit
并运行sudo update-grub
。然后重新启动并测试更改。
在里面专门针对英特尔显卡的 Arch Linux 页面你会发现其他建议:
- 创建 / 编辑
/etc/modprobe.d/i915.conf
并插入options i915 enable_fbc=1
。 - 创建 / 编辑
/etc/modprobe.d/i915.conf
并插入options i915 fastboot=1
。
这些只是一些提示,您应该访问该页面并仔细阅读。
我在另一个已删除的答案中提到compton
过Ubuntu Bionic(18.04)手册页描述。虽然在 Ubuntu 中可用,但答案被否决,因为引用来自 Linux Mint 社区中的非 Ubuntu 用户。由于您使用的是 I3 窗口管理器(不是 Ubuntu 的一部分),因此您可能会成功使用它。