Intel 板载显卡 + AMD Radeon 上的屏幕撕裂(PRIME 同步 0)

Intel 板载显卡 + AMD Radeon 上的屏幕撕裂(PRIME 同步 0)

我在 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 的一台显示器出现严重的屏幕损坏(另一台则正常)。所以这不是一个好的解决方案。


相关内容