![Intel 板载显卡 + AMD Radeon 上的屏幕撕裂(PRIME 同步 0)](https://linux22.com/image/13024/Intel%20%E6%9D%BF%E8%BD%BD%E6%98%BE%E5%8D%A1%20%2B%20AMD%20Radeon%20%E4%B8%8A%E7%9A%84%E5%B1%8F%E5%B9%95%E6%92%95%E8%A3%82%EF%BC%88PRIME%20%E5%90%8C%E6%AD%A5%200%EF%BC%89.png)
我在 CentOS 8 上使用两台配备 AMD Radeon RX570 和 Intel 板载显卡的显示器。(我的 CPU 是 i3-8100 @ 3.60GHz。)
我有屏幕撕裂在移动窗口或观看视频时,第二个显示器上由英特尔板载显卡呈现。
PRIME Synchronization
经过谷歌搜索后,我得到了使第二台显示器不撕裂的信息。为了检查它,我跑了xrandr --props
。下面的输出是从中提取的。
xrandr --props
...
HDMI-1-1 connected 1920x1200+1920+0 (normal left inverted right x axis y axis) 518mm x 324mm
_MUTTER_PRESENTATION_OUTPUT: 0
EDID:
00ffffffffffff0038c3240200000000
0811010380342078ea8cb5a7554d9f26
0c5054afef8071408140818081c0a940
b301d1c00101283c80a070b023403020
260006442100001a243680a070381f40
3020250030303100001a000000fd0038
4b1f4d11000a202020202020000000fc
0056434231303739480a2020202001ac
020318f2450405030290230904046503
0c001000830100008c0ad08a20e02d10
103e9600c48e210000188c0ad08a20e0
2d10103e9600138e2100001800000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
0000000000000000000000000000004b
PRIME Synchronization: 0
supported: 0, 1
Content Protection: Undesired
supported: Undesired, Desired, Enabled
aspect ratio: Automatic
supported: Automatic, 4:3, 16:9
Broadcast RGB: Automatic
supported: Automatic, Full, Limited 16:235
audio: auto
supported: force-dvi, off, auto, on
link-status: Good
supported: Good, Bad
CONNECTOR_ID: 71
supported: 71
non-desktop: 0
range: (0, 1)
...
为了启用PRIME Synchronization
,我跑了xrandr --output HDMI-1-1 --set "PRIME Synchronization" 1
。但是,在我运行它之后,第二个显示器闪烁了(也许它似乎快速关闭和打开),然后设置再次重置为0。
这种情况只有在安装了CentOS 8 v19.30的AMD linux驱动之后才会遇到,也就是目前最新的驱动。如果我不安装它(这意味着我使用 CentOS 8 中包含的默认驱动程序),则不会发生屏幕撕裂,并且PRIME Synchronization
第二个显示器为 1。但是,我应该使用 AMD 驱动程序而不是默认驱动程序。
我怎样才能设置PRIME Synchronization
为1?或者我怎样才能找到为什么它不能设置为1?
仅供参考,我所知道的一些信息如下:
lspci -nn | grep "VGA\|Display"
00:02.0 Display controller [0380]: Intel Corporation 8th Gen Core Processor Gaussian Mixture Model [8086:3e91]
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ef)
xrandr --listproviders
Providers: number : 2
Provider 0: id: 0xa2 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 5 associated providers: 1 name:Radeon RX 570 Series @ pci:0000:01:00.0
Provider 1: id: 0x45 cap: 0x2, Sink Output crtcs: 3 outputs: 3 associated providers: 1 name:modesetting
答案1
我在 Gentoo Linux 上使用 Radeon RX590 时遇到了完全相同的问题。我尝试修改内核设置,但无法启用 PRIME 同步。您找到解决方案了吗?
我发现将 KDE 系统设置中的“防止撕裂”设置为“全屏重画”确实可以稍微减少撕裂。然而,仍然有一些撕裂,这有点烦人。
- - -[编辑] - - -
我能够让 PRIME 同步工作,在 xorg.conf.d 中:
Section "Device"
Identifier "Intel Graphics"
Driver "modesetting"
EndSection
这似乎强制使用 amdgpu 以及 intel gpu 上的模式设置驱动程序,从而导致主同步工作。然而,这会导致连接到 iGPU 的一台显示器出现严重的屏幕损坏(另一台则正常)。所以这不是一个好的解决方案。