过去,我遇到过三个重要的应用程序与 compiz 和专有的 Nvidia 图形驱动程序存在问题,它们是;Googleearth、Secondlife 客户端和 Blender、compiz 和旧 shell 已经取得了长足的进步,并且这些应用程序在打开 Compiz 合成时的性能现在基本上可以接受。
鉴于您已决定将 Compiz 与 Unity 一起使用而不是 Mutter,您是否会在 Unity 中使用 Compiz 和 Unity 使用 Mutter 测试这些或任何其他重要的 3d 应用程序,以查看哪个提供最佳性能?像这样的测试可能有助于证明你的情况。到目前为止,我只听说 Compiz 的硬件兼容性更好,并怀疑它将成为 Unity 更好的合成系统。
上述两种配置如何与旧 shell 上的最新 Compiz 进行比较,以及使用运行这些应用程序的 Mutter 合成对 Gnome Shell 的测试也有助于比较。如果需要科学演示,也许 Phoronix 的某个人可以在这方面提供帮助,但我认为从此类测试中报告的诚实的个人经验将非常有用。
我知道现在还很早,我不知道 Unity 与 Compiz 的状态我当然希望我们不必回到过去,在使用某些应用程序时必须关闭合成才能完成工作,尤其是由于 Unity shell 将比旧 shell 更依赖于合成,换句话说,如果我们必须关闭合成才能使用 Blender,会发生什么?
希望我们不必再等待很长时间才能让 Unity/Compiz 与需要 3d 渲染的应用程序一起正常工作。
我不知道它会如何影响某些特定的应用程序,但就我而言(我有一个 ATI 4850),运行 Compiz 而不是 Metacity 要快得多。这是因为窗口绘制工作是由 GPU 而不是 CPU 完成的。但是,由于 GPU 在 google earth 中进行渲染以外的工作,因此它的性能可能会下降一点点。这就是为什么在 Windows 中,当您打开游戏时,它会禁用透明胶片和花哨的东西。
使用正确执行的视频卡驱动程序,常规应用程序的性能几乎不会降低。由于涉及额外的复制和通信,以每秒 100 帧运行的视频游戏肯定会出现性能损失,但没有针对此的 compiz 级解决方案。
实际上,Mutter 和 Compiz 使用类似的合成引擎,因此您将在每个窗口管理器上获得相同类型的减速。
减速问题的唯一真正解决方案是在我们的 openGL 场景顶部放置全屏窗口的 hack。然而,这意味着您不能在上面绘制通知或任何东西,因为它们需要在 openGL 场景中绘制。
我们应该考虑将 GEM 缓冲区对象作为 FBO 直接公开给 compiz,而不是将它们公开为像素图。这将为我们提供全速显示这些应用程序所需的少量 FPS 提升。不过,这将是遥远的未来。