archlinux intel gpu优化解决视频图片画面割裂的问题

Posted ITKEY_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了archlinux intel gpu优化解决视频图片画面割裂的问题相关的知识,希望对你有一定的参考价值。

archlinux在物理机中常起使用已经有大半年了,有一个问题一直没解决。那就是浏览器中快速拖动滚动条,或者看运行速度比较快的视频时,会有明显的画面割裂感。重现这一个现象的最好办法,就是找个动画片,2倍速播放,画面中间会有一条斜线。

主要是大部分时间是影响不大的。不影响写代码和日常办公。所以这个问题一直没有处理。

环境信息

开始之前先看一下我的环境信息:

                   -`                    itkey@vivobook 
                  .o+`                   -------------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Host: VivoBook_ASUSLaptop K3402ZA_K3402ZA 1.0 
               `+oooooo:                 Kernel: 5.15.76-1-lts 
               -+oooooo+:                Uptime: 11 mins 
             `/:-:++oooo+:               Packages: 1397 (pacman) 
            `/++++/+++++++:              Shell: zsh 5.9 
           `/++++++++++++++:             Resolution: 1920x1080, 3840x2160 
          `/+++ooooooooooooo/`           WM: i3 
         ./ooosssso++osssssso+`          Theme: Breeze [GTK2/3] 
        .oossssso-````/ossssss+`         Icons: breeze [GTK2/3] 
       -osssssso.      :ssssssso.        Terminal: kitty 
      :osssssss/        osssso+++.       CPU: 12th Gen Intel i5-12500H (16) @ 4.500GHz 
     /ossssssss/        +ssssooo/-       GPU: Intel Alder Lake-P 
   `/ossssso+/:-        -:/+osssso+-     Memory: 2414MiB / 15621MiB 
  `+sso+:-`                 `.-/+oso:
 `++:.                           `-/+/                           
 .`                                 `/                           

显示器组成:

  1. 笔记本内置显示器 2.5K的屏幕 (一般我不启动,合盖)
  2. HDMI接口的1080p 小米23寸显示器(副屏)
  3. type-c接口的4K PHILIPS 27寸显示器(主屏)

现象

  1. i3wm中播放视频和快速浏览图片有明显画面割裂感。
  2. KDE或者GNOME桌面环境中一切正常。

原因分析

  1. 因为在KDE中是正常的,所以可以排除是GPU驱动问题。
  2. KDE或者GNOMEawesome+picom都是正常的,那么可以判断可能是i3缺少什么导致,或者有什么BUG。
  3. i3环境中,不连接HDMI接口的1080p 显示器也没有问题。

解决办法

网上的解决办法是i3+compton,而这个办法对我是无效的。
以下两种都不算完美的解决办法,但至少对我是有效的。

解决办法一:不用i3切换其他桌面环境

  1. 在想看视频的时候切到KDE或者GNOME桌面环境中,写代码或者需要专注时切到i3
  2. 我使用awesome代替i3,同样是平铺窗口环境。工作娱乐都可以。
    当然需要awesome配合picom。
    我的开机启动设置如下:
-- 合成器
awful.spawn.with_shell("picom -bc")

解决办法二:不连接HDMI接口的1080P显示器

经过我反复的测试发现在i3环境中(有picom),只要不连接 HDMI接口的1080p。就不会有画面撕裂的情况。不清楚是不是因为
1K屏与4K屏混用导致的这个问题。

但是就算连接了HDMI接口的1080P显示器在其他桌面环境中就是正常的。会不是是触发了i3的某个bug呢?

总结

虽然并不算完美的解决方案。总算一定程度上解决了这个痛点了。为了这个我花了很多时间研究,如果对您有一点点帮助的话,我想要个点赞。


以下内容是探索的过程,可以忽略。

探究过程

测试方法

  1. https://screen.bmcx.com/#test-solid-red
  2. http://tool.mkblog.cn/screentest/
    使用以上网站快速滚动鼠标滚动条,来实现画面快速切换颜色。这样就能看出一条对角线。

KDE 一切正常只在i3窗口管理器中出现问题

因为我使用的是i3窗口管理器,有可能有些服务默认没有加载导致的?
所以我打算使用KDE测试一下。
测试结果:
我在KDE中测试了一下,发现确实不存在这个问题。看来是我的i3缺少了什么导致的。这样可以排除的我gpu显卡驱动的问题了。

i3+compton?(有效,但不完美)

如题,用的i3wm,在浏览网页或拖动窗口是就会发生撕裂现象。 用compton解决了,原来用的xcompmgr

在网上看到如上这样的说法。
我也来测试一下。

sudo pacman -S picom
exec_always --no-startup-id picom -bc

我尝试安装compton,实际安装出来的是picom。用了以后可以显示透明的内容了。
原本画面撕裂是一整条斜线,现在变成了中间部分的斜线了。并没有完美的解决我的问题。

KDE中使用i3是否能解决这个问题?

我参考了以下教程

https://github.com/heckelson/i3-and-kde-plasma
确实可以在kde中使用i3做为管理器了,问题依然存在。

解决办法

首先说明i3wm环境下的完美解决方案我暂时没有找到,i3+picom能有一定的效果,但是不够完美。
对我有效的解决方案是:

  1. 在想看视频的时候切到KDE或者GNOME桌面环境中,写代码或者需要专注时切到i3
  2. 我使用awesome代替i3,同样是平铺窗口环境。工作娱乐都可以。
    当然需要awesome配合picom。
    我的开机启动设置如下:
-- 合成器
awful.spawn.with_shell("picom -bc")

补充说明1

我本以为i3上是解决不了的了。但是我又无意中发现i3+picom的方式 画面又正常了。具体的原因我就无法了解了。

猜测:

  1. 有没有一种可能是因为我后来安装的GNOME桌面环境或者awesome,自带了什么软件包或者什么驱动之类的,变相的解决了这个问题的呢?
  2. 当然我近期也更新过系统pacman -Syyu。也有可能是更新了什么解决了问题。

反正最初的时候我仅有i3+KDE+阉割版本的GNOME的时候i3是确实有画面撕裂的问题的。现在问题又没有了。等后面知道具体的原因时我在补充吧。

补充说明2

经过我后来排除情况,竟然是我外接了1080p的HDMI显示器后就会出现画面撕裂。

参考

《[已解决]画面撕裂的问题》
https://bbs.archlinuxcn.org/viewtopic.php?id=5412
《I3_(简体中文)#画面撕裂现象》
https://wiki.archlinux.org/title/I3_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#%E7%94%BB%E9%9D%A2%E6%92%95%E8%A3%82%E7%8E%B0%E8%B1%A1
《picom》
https://wiki.archlinux.org/title/Picom

以上是关于archlinux intel gpu优化解决视频图片画面割裂的问题的主要内容,如果未能解决你的问题,请参考以下文章

解决intel TGL iGPU 与 nvidia GPU不能同时使用的问题

ArchLinux双显卡配置Intel-UHD630+NVIDIA1060

视频解码性能对比opencv + cuvid + gpu vs. ffmpeg + cpu

ArchLinux安装英伟达显卡驱动

如何通过优化 Python 中的 GPU 使用率将视频处理速度提高 5 倍(教程含源码)

基于 Intel 的显卡是不是与 tensorflow/GPU 兼容?