如何使用 nvidia 专有技术获得无撕裂渲染?

如何使用 nvidia 专有技术获得无撕裂渲染?

自从我一直使用Ubuntu以来,我以前从未经历过撕裂,但最近我切换到了架构Linux惊人的作为我的窗口管理器。由于 Awesome 不使用任何复合管理器,因此我在滚动网页时看到这些恼人的故障。我已经安装了康普顿它可以工作,但我在启用它时遇到一些问题。

显卡:英伟达精视 GTX 670所有权驱动程序 (387.34-19)
compton --版本:v0.1_beta2.5

compton --daemon --config /dev/null --backend glx
  1. 有时,我使用的终端模拟器(xfce4-terminal)在额外击键之前不会渲染输出。问题已描述这里,这里这里
  2. 谷歌浏览器上下文菜单有时会闪烁。

然而,它可以修复撕裂。

compton --daemon --config /dev/null --backend xrender

这解决了上述问题,但本身却存在问题。

compton --daemon --config /dev/null --backend xr_glx_hybrid

这解决了问题 #1 和撕裂问题,但问题 #2。此外,屏幕刷新开始随机出现。我发现我可以通过传递--fading选项来解决问题#2,但后一个问题仍然存在。

因此,xrender工作得很好,因为它不会产生新的错误,但我认为当我拥有带有专有驱动程序的 GPU 时进行调查并不是一个好的决定。看起来这compton是一堆黑客和技巧,我厌倦了让它正常工作。我尝试过xcompmgr,但没有看到预期的效果 - 滚动过程中出现撕裂。

幸运的是,还有另一种解决方案可以使用ForceCompositionPipeline=On.我已经/etc/X11/xorg.conf.d/20-nvidia.conf正确配置了,除了输入延迟之外,一切都很完美。鼠标指针的响应速度变得更慢,更平滑。也许键盘也是如此,但我不确定(我的意思是,打印我按下的键需要更多时间)。

我正在寻找任何摆脱撕裂的可能性。新的复合管理器以及适当的compton选项是可以接受的,但后一个问题的解决方案是更好的,因为我实际上不需要合成器提供的所有这些功能,例如阴影或淡入淡出。

答案1

我能够解决这些问题。正如我所说,要解决问题 #2,请传递--fading选项。要提高动画速度或将其关闭(设置 1),您可以传递--fade-in-step--fade-out-step选项。当xr_glx_hybrid有后端时,我有屏幕刷新,所以glx更好。我不知道为什么,但我找到了该选项--xrender-sync--xrender-sync-fence修复了问题 #1。也许在失败时compton使用...xrenderglx

答案2

我还不能发表评论,但非常感谢您的回答。

您还可以在配置文件中添加这些选项,以获得更可重复的设置。

backend = "xr_glx_hybrid";
fading = true;
fade-in-step = 0.03; # Choose your own value here
fade-out-step = 0.03; # Same as above
xrender-sync-fence = true;

相关内容