英特尔显卡有一个选项可以禁用X11下的屏幕撕裂。可以通过将xorg配置为这样的节来启用它,
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "TearFree" "true"
EndSection
为什么默认情况下未启用此功能?TearFree选项的缺点是什么?
这是在解决该intel
手册页:
禁用或启用TearFree更新。此选项强制X在更新实际显示之前对后缓冲区执行所有渲染。它需要一个与帧缓冲区大小相同的额外内存分配(偶尔会有额外的副本),并且需要跟踪损坏。因此,启用TearFree需要更多的内存,并且速度较慢(吞吐量降低),并且会引入少量的输出延迟,但不会影响输入延迟。但是,然后与显示器的垂直刷新同步执行对屏幕的更新,以便在显示器开始刷新之前完成整个更新。那是只有一帧是可见的,从而防止了两个可见且不同的帧之间的难看的撕裂。请注意,这复制了合成管理器应该执行的操作,但是TearFree会将合成器更新(以及全屏游戏的更新)直接重定向到扫描输出,因此在合成情况下不会产生任何额外的开销。还要注意,并不是所有的合成管理器都可以防止撕裂,并且如果旋转输出,那么在未启用TearFree的情况下仍然会有撕裂。
总而言之,缺点是它需要更多的内存,并且降低了吞吐量并增加了延迟(除非已经有合成器或vblank同步的全屏显示)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句