使用 DisplayPort 会导致屏幕闪烁和黑屏

使用 DisplayPort 会导致屏幕闪烁和黑屏

我的计算机正在运行 Arch,我想通过 DisplayPort 使用单个显示器。该配置与 HDMI 电缆配合使用效果良好,但在 3840x2160 分辨率下仅限于每秒 30 帧。

运行 Windows 时,包括使用 DisplayPort 电缆连接的屏幕在内的硬件工作正常,因此我不考虑硬件问题。

使用 HDMI 电缆,一切都可以开箱即用:我登录到我的系统,然后exec startplasma-x11通过.xinitrc.如果我连接 DisplayPort 电缆,然后启动并登录,我会从登录窗口开始闪烁,并且在登录桌面后不久,屏幕将变黑。

我确实找到了一种通过 DP 连接显示器的方法:连接 HDMI 登录,使用 打开单独的虚拟控制台Ctrl+Alt+F2,更改电缆,然后执行xrandr --auto,然后改回 X 登录会话。这样,输出有点稳定,但我仍然在屏幕的最上部闪烁(特别是在使用 Discord 或 Chrome 等 Electron 应用程序时,很奇怪)。

xrandr 在此解决方法中选择的配置是我希望默认使用的配置,但不会闪烁,也无需进行电缆切换。

在此配置中,我通过提取所需的模型行cvt 3840 2160来写入条目xorg.conf.d/10-monitor.conf

Section "Monitor"
    Identifier "DisplayPort-1"
    Modeline "3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync
    Option "PreferredMode" "3840x2160_60.00"
EndSection

Section "Screen"
    Identifier "Screen0"
    Monitor "DisplayPort-1"
    DefaultDepth 24
    SubSection "Display"
        Modes "3840x2160_60.00"
    EndSubSection
EndSection

Section "Device"
    Identifier "Device0"
    Driver "radeon"
EndSection

我还添加了这一行

xrandr --output DisplayPort-1 --primary --mode 3840x2160 --rate 60.00

给我的.xinitrc

尽管如此,我还没有摆脱启动时的问题。

我怎样才能解决这个问题?我正在寻找一种方法,让我的屏幕在启动时自动通过 DisplayPort 连接。有一个更好的方法吗?


编辑:我的journalctl -r日志如下所示(摘录):

Jul 29 09:25:36 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: Emitting configChanged()
Jul 29 09:25:36 my_arch kded5[641]: bluedevil: ObexAgent registered
Jul 29 09:25:36 my_arch kded5[641]: bluedevil: ObexManager operational changed true
Jul 29 09:25:35 my_arch kded5[641]: Registering ":1.36/StatusNotifierItem" to system tray
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: Output 86 : connected = true , enabled = true
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: XRandROutput 86 update 
                                                                   m_connected: 0 
                                                                   m_crtc XRandRCrtc(0x557123179780) 
                                                                   CRTC: 79 
                                                                   MODE: 91 
                                                                   Connection: 0 
                                                                   Primary: true
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: Output 85 : connected = false , enabled = false
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: XRandROutput 85 update 
                                                                   m_connected: 1 
                                                                   m_crtc QObject(0x0) 
                                                                   CRTC: 0 
                                                                   MODE: 0 
                                                                   Connection: 1 
                                                                   Primary: false
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: Output 86 : connected = true , enabled = true
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: XRandROutput 86 update 
                                                                   m_connected: 0 
                                                                   m_crtc XRandRCrtc(0x557123179780) 
                                                                   CRTC: 79 
                                                                   MODE: 91 
                                                                   Connection: 0 
                                                                   Primary: true
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: Output 85 : connected = false , enabled = false
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: XRandROutput 85 update 
                                                                   m_connected: 1 
                                                                   m_crtc QObject(0x0) 
                                                                   CRTC: 0 
                                                                   MODE: 0 
                                                                   Connection: 1 
                                                                   Primary: false
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Subpixel Order:  1
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Connection:  "Connected"
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Mode:  91
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         CRTC:  79
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Output:  86
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper: RRNotify_OutputChange
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Subpixel Order:  1
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Connection:  "Disconnected"
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Mode:  0
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         CRTC:  0
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Output:  85
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper: RRNotify_OutputChange
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         SizeMM:  1016 571
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Size:  3840 2160
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Size ID: 0
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Root: 1731
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Window: 44040197
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper: RRScreenChangeNotify
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Subpixel Order:  1
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Connection:  "Connected"
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Mode:  91
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         CRTC:  79
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Output:  86
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper: RRNotify_OutputChange
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Subpixel Order:  1
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Connection:  "Disconnected"
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Rotation:  "Rotate_0"
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Mode:  0
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         CRTC:  0
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper:         Output:  85
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xcb.helper: RRNotify_OutputChange
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: XRandR::setConfig done!
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: RRSetOutputPrimary 
                                                                   New primary: 86
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: XRandROutput 86 update 
                                                                   m_connected: 0 
                                                                   m_crtc XRandRCrtc(0x557123179780) 
                                                                   CRTC: 79 
                                                                   MODE: 91 
                                                                   Connection: 0 
                                                                   Primary: true
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr:         Result:  0
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: RRSetCrtcConfig (change output) 
                                                                   Output: 86 ( "DisplayPort-1" ) 
                                                                   CRTC: 79 
                                                                   Pos: QPoint(0,0) 
                                                                   Mode: 91 KScreen::Mode(Id: "91" , Size: QSize(3840, 2160) @ 59.9809 ) 
                                                                   Rotation: 1
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr:         Enable outputs: false
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr:                  (86)
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr:         Change outputs: true
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr:         Disable outputs: false
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr:         Change Screen Size: false
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr:                 Old: 85 
                                                                           New: 86
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: Actions to perform: 
                                                                   Primary Output: true
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: Needed CRTCs:  1
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: Requested screen size is QSize(3840, 2160)
Jul 29 09:25:35 my_arch kscreen_backend_launcher[764]: kscreen.xrandr: XRandR::setConfig

我想知道为什么我的监视器显示速度为59.9809第一。这会是一个问题吗?

相关内容