笔者是一个苛求显卡性能的程序员,对坐拥的两台“古董”笔记本也一视同仁。这两台笔记本,一台是2009年的老机器ThinkPad X61,安装了OpenSUSE;而另一台是2012年的ThinkPad X200,用的是Deepin Linux。
按理说,新机器的显卡性能相对于旧机器应当有所改善,可是事实却让我无奈——X200的Deepin下,拖动窗口时画面会有明显的撕裂感,一个窗口被拆成两半,而且在使用SMPlayer播放视频(720p)时,也会有细微但肉眼可辨的撕裂。然而,X61的OpenSUSE却完全不存在这样的问题,拖动窗口时一气呵成,不会撕裂,观感体验要好上不少。
撕裂现象是Deepin在一些老机器上容易产生的问题。Deepin属于比较新的系统,不可能会对旧机型进行细致的优化,其默认的显卡配置(Xorg的配置文件)也不是放之四海而皆准的,因此还得手动解决。但是,Deepin最新适配的窗口管理器(下文简称“窗管”)KWin,能够便捷地解决这个问题。KWin是KDE的窗管,得益于它的桌面混成器(desktop compositor),KDE Plasma桌面得以充分发挥显卡的性能,哪怕是X61所使用的旧显卡都能实现行云流水的使用体验。这一特性也在Deepin版的KWin得到了实现。
安装KWin
Deepin目前的版本(15.10.1)默认的窗管是Mutter,而不是KWin。KWin需要手动安装,安装下面的包之后,下次启动系统后窗管就会自动从Mutter切换到KWin:
1 |
|
安装 systemsettings
Deepin的KWin默认没有启用桌面混成器,所以在KWin下仍然会出现画面撕裂的情况,与默认的Mutter窗管无异。笔者曾以为Deepin团队会针对KWin的性能作出针对性优化,然而事与愿违了。接下来只能手动启用混成器。
桌面混成器的设置位于systemsettings
包中。这个包是精简版的KDE系统设置程序,只保留了与KWin和网络有关的设置项。使用下面命令直接安装:
1 |
|
安装后,启动器中就会多出一个“KDE系统设置”,如图所示。
配置桌面混成器
打开KDE系统设置,左栏最后一项“显示和监控”即为桌面混成器的设置。点开它:
基本设置
首先,勾选“Enable compositor on startup”,让KWin在系统启动时自动启动混成器。然后“Rendering backend”(渲染后端)选择“OpenGL 2.0”或“OpenGL 3.1”。
垂直同步设置
垂直同步是防止撕裂的关键。KDE提供了若干种垂直同步的处理方法,位于“Tearing prevention (‘vsync’)”这个选项中。每选择一个方法,设置界面中就会用蓝色的框说明该选项可能会导致的后果。
具体的方法见下表:
选项 | 含义 | 在X200下的实际效果 |
---|---|---|
Never | 禁用垂直同步 | 于是画面会撕裂。。。 |
Automatic | 自动选择垂直同步的方法 | 不靠谱,往往会选择并没有啥用的方法 |
Only when cheap | 只在性能开销不大的时候进行处理 | 只会在全屏内容改变(如视频播放)时起作用 |
Full screen repaints | 全屏重绘制 | 真正能在英特尔集显上起作用的方法,完美! |
Re-use screen content | 复用屏幕元素 | 电脑卡成了PPT,根本无法正常使用 |
实践证明,只有Full screen repaints适合我的X200笔记本。选择该模式并应用,再拖动窗口,果然不再撕裂了,使用体验变得顺滑了不少!
另外两种方式中,“Only when cheap”只在播放视频时能起到防止撕裂的作用。而对于“Re-use screen content”,KDE的开发者表示该模式会在MESA驱动中导致严重的性能问题,果不其然,选择该模式后,电脑就卡成了PPT,动弹不得,延迟爆表!我可是费了很大的劲才把设置还原回来。Linux配备的英特尔集显驱动就是一种MESA驱动,它最终的表现正应了开发者的警告。
桌面混成器的意义
启用桌面混成器并选用有效的垂直同步处理方法后,Deepin的体验有了质的提升。
首先是窗口拖动不再出现撕裂的情况,使得界面的操作体验更为舒适流畅,提高了Deepin的规格。
同时,桌面混成器也提高了各种应用程序的界面渲染性能,这是我意料之外的收获。举个例子:Typora,基于Electron开发的Markdown编辑器,它的Chromium内核默认没有启用硬件加速,在启用桌面混成器之前滚屏时会有间歇性错位的现象;Deepin设置,滚屏时虽然很流畅,但也常常会出现界面错位,影响观感。上述两个问题在配置桌面混成器后,竟然在我不经意之间都得到了解决,偶然再使用它们时才发现这一切的转变。
X61上的OpenSUSE,它的KDE Plasma桌面默认就配置好了混成器,所以一开始就无比流畅。而Deepin在经过调教之后,它的表现也开始不输于KDE了。电脑要流畅,启用混成器是王道。
- 本文作者: 爱拼安小匠
- 本文链接: https://anclark.github.io/2019/06/29/Struggle_with_Linux/解决Deepin-KWin撕裂问题/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0(署名-非商用-禁止演绎 3.0) 许可协议。转载请注明出处!