解决Deepin Linux + KWin屏幕界面的撕裂问题
笔者是一个苛求显卡性能的程序员,对坐拥的两台“古董”笔记本也一视同仁。这两台笔记本,一台是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得到了实现。
Deepin目前的版本(15101)默认的窗管是Mutter,而不是KWin。KWin需要手动安装,安装下面的包之后,下次启动系统后窗管就会自动从Mutter切换到KWin:
Deepin的KWin默认没有启用桌面混成器,所以在KWin下仍然会出现画面撕裂的情况,与默认的Mutter窗管无异。笔者曾以为Deepin团队会针对KWin的性能作出针对性优化,然而事与愿违了。接下来只能手动启用混成器。
桌面混成器的设置位于 systemsettings 包中。这个包是精简版的KDE系统设置程序,只保留了与KWin和网络有关的设置项。使用下面命令直接安装:
安装后,启动器中就会多出一个“KDE系统设置”,如图所示。
打开KDE系统设置,左栏最后一项“显示和监控”即为桌面混成器的设置。点开它:
首先,勾选“Enable compositor on startup”,让KWin在系统启动时自动启动混成器。然后“Rendering backend”(渲染后端)选择“OpenGL 20”或“OpenGL 31”。
垂直同步是防止撕裂的关键。KDE提供了若干种垂直同步的处理方法,位于“Tearing prevention ('vsync')”这个选项中。每选择一个方法,设置界面中就会用蓝色的框说明该选项可能会导致的后果。
具体的方法见下表:
实践证明,只有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了。电脑要流畅,启用混成器是王道。
deepin--解决屏幕撕裂问题 :从更改Xorg配置文件来解决撕裂。
一般就是两种解决方法
1、到游戏中开启垂直同步,将fps限制在60就不会了。
2、更换144hz显示器。
画面撕裂就是由于fps过高导致的屏幕无法显示这么高的刷新率。
瓦罗兰特画面撕裂解决方法:开启垂直同步(V-SYNC)选项。不过开启垂直同步会让显卡强行与显示器的刷新率同步,这就大大限制了显卡性能的发挥,更换一个高性能的显示器尤为重要,高性能的显示器能让显卡刷新的画面更为流畅。
这个是由于桌面和游戏分辨率不同,而之间切换后没有及时调整的原因 有三个解决办法:
1 把游戏的分辨率调整为桌面分辨率
2 使用窗口最大化进行游戏
3 可能是由于你的拼音输入法的问题,在这里我不推荐使用智能ABC,因为智能ABC是迄今为止BUG最多的输入法,说不定问题就是它引起的
建议把上面的问题依次尝试
发生原因: CPU 和 GPU 的计算能力跟不上现在的帧率,此时才会有可能发生撕裂。
当第一帧图像扫描到某个位置时,GPU拿到新的数据并存储到帧缓冲区,这时候视频控制器从帧缓冲区扫描新拿到的一帧的图像。即撕裂是两张组合而来,原因就是视频控制器显示速度小于GPU处理图形的速度。
注:一般出现在低端设备 加载一个高FPS的视频/游戏场景,在iOS设备上并不常见。或者非常低端的iOS设备上,加载一个APP界面上出现非常高频的动画效果以及图层复杂度高且涵盖了动画效果。
苹果采用:双缓存区 DoubleBuffering +垂直同步信号 Vsync
双缓存: GPU 开辟AB两个帧缓冲区
垂直同步信号: 帧缓存区加锁 防止出现撕裂情况(当前帧缓存区的数据显示到屏幕后,再显示下一缓存区数据)
执行流程就是当A帧缓冲区拿到第一帧数据,给A缓冲区加上一把锁,屏幕控制器从A拿到数据并逐行扫描完成,A帧缓冲区解锁,并且屏幕控制器指向B帧缓冲区,B帧缓冲区加锁并逐行扫描显示,在屏幕控制器扫描B帧缓冲区的时候,A帧缓冲区拿到GPU传过来的新一帧数据,以此类推,解决撕裂问题
注:双缓存+垂直同步信号并没有真正的撕裂解决问题,制标不制本。真正是问题是CPU和GPU计算能力达不到帧率(所以用再多的缓存区也只是打补丁。但可以解决很少见的撕裂问题)
启用:双缓存+垂直同步信号后解决了 撕裂 ,会引起新问题 掉帧
掉帧是重复渲染同一帧数据
注:我们在解决撕裂问题时,只是让别人看不到撕裂,会等待,重复显示一桢
为了减少掉帧(注意不是解决,掉帧问题只能尽量的减少,而不是解决,三级缓冲区也有可能出现掉帧),引入三级缓存区,三级缓冲区是为了充分利用CPU/GPU的空余时间,开辟ABC三个帧缓冲区,A显示屏幕, B也渲染好,C再从GPU拿取渲染数据,当屏幕缓冲区和帧缓冲区都弄好了,然后视频控制器再指向帧缓冲区的另外一个,再显示,这样交替,达到减少掉帧的情况,这样做就比二级缓冲区多了一个确认的操作
1CPU 和 GPU 渲染流水线耗时过长 导致 -> 图像撕裂
2垂直同步信号 Vsync + 双缓存区 DoubleBuffering 以掉帧为代价-> 解决图像撕裂
3三缓存区:合理使用CPU和GPU 减少掉帧次数
关于花屏的问题解决办法:
1、由于机箱散热不好,导致显卡温度升高引起的花屏 。
解决方法就是,排除散热问题。
检查风扇运转是否正常,给风扇加油,清理机箱内的灰尘,解决散热问题后故障即可排除。
2、由于显卡或者显示器不支持高分辨率造成的解决方法:
(1)重启电脑,连续按F8键,跳出高级启动菜单,选择进入“安全模式”回车登陆系统,然后在windows下进入显示设置,选择16色状态后,点击“应用”按钮,点击“确定”按钮
(2)重新启动电脑,在windows正常模式下,进入设备管理器,删除显卡驱动程序,重新启动电脑即可。
(3)显卡松动,关机后拔下显卡重新安插通常就可以解决问题。
(4)系统过热,包括CPU温度过高和显卡芯片温度过高。可在机箱中相应位置安装散热风扇,或者将机箱放在通风良好的地方。
,解决方法一:显卡驱动更新
N卡玩家相比在彩虹六号围攻的时候出现的画面问题相对较少,主要是A卡玩家可能会出现画面撕裂,这主要是显卡不支持游戏所导致的,通常情况下玩家只需要更新一下自己的显卡驱动即可。
解决方法二:输入法问题
由于输入法问题导致的情况也时有发生,在其他游戏中更是频频出现,大家在游戏中尽量不要切换输入法即可,如果可以的话,将输入法关闭。
解决方法三:开启垂直同步
在游戏中开启垂直同步能够很好的解决画面撕裂的问题,在帧数过高的时候可以强制刷新游戏的频率,如果电脑的配置还算可以的话,不建议大家使用。
解决方法四:更换显卡
如果上面的方法都不能解决的话,大家就只好出点钱换个高端一点的显卡了,这样就能够从根本上解决画面撕裂的问题了。
0条评论