KDE 合成器撕裂预防(“vsync”)在幕后有什么作用?

KDE 合成器撕裂预防(“vsync”)在幕后有什么作用?

我有屏幕撕裂问题。当我Tearing prevention ("vsync")在合成器中设置其他内容然后返回Automatic屏幕时,撕裂现象消失了。我想知道Tearing prevention ("vsync")更改哪些配置文件来解决此问题并找到永久解决方案。

我测试屏幕撕裂这个视频

我在使用最新的 live ISO 以及免费和非免费驱动程序时也遇到了屏幕撕裂的情况。

Operating System: Manjaro Linux 
KDE Plasma Version: 5.18.5
KDE Frameworks Version: 5.70.0
Qt Version: 5.15.0
Kernel Version: 5.6.16-1-MANJARO
OS Type: 64-bit
Processors: 8 × Intel® Core™ i7-6700HQ CPU @ 2.60GHz
Memory: 15,5 GiB of RAM
GPU: Nvidia GeForce 940M

答案1

我认为仅当您的本机 GPU 驱动程序设置中没有 VSync 功能时,该选项才有用。

如果您使用 nouveau 或其他一些驱动程序,请将此选项设置为自动。如果您的 Nvidia 卡使用 Nvidia 驱动程序,则可以禁用此选项并将其设置为“从不”。

因为你已经Force Composition Pipeline在 Nvidia 设置中了。

答案2

警告:这个问题显然与 kwin 版本 < 5.21 有关。此后情况发生了很大变化,整个垂直同步策略被重写。因此,如果该问题在 >=5.21 版本中再次出现,则以下答案应被视为已过时。

据我自己的经验来看:

我赞同 MPK99 的建议:

Vsync :从不(作为 kde 系统设置的一部分)+ 同步到 VBlank 作为 NVIdia 专有驱动程序设置的一部分。就我而言,这完全符合 99% 的目的。

不过,我仍然可以在 VLC 全屏播放高清视频时观察到撕裂现象。

我能够使用不同的方式解决这个问题:

  • 选项 "MetaModes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}" 作为 xorg.conf 的一部分,独占或:
  • vsync = 自动或仅在便宜时作为 kde 设置的一部分。

我选择了后者,因为所需的(本地)定时器中断数量显着减少。

因此,为了回答你的问题:“KDE 合成器有什么作用...“对我来说,与任何其他方法相比,它以更低的成本(就中断 => 上下文切换而言)在 VLC 中实现无撕裂全屏高清视频渲染。

相关内容