Ubuntu桌面开发人员Daniel Van Vugt一直致力于在GNOME的Mutter合成器中为离散GPU提供零拷贝支持,以提供更快的性能。到目前为止,这似乎与Nouveau开源NVIDIA驱动程序一起工作。
当在Wayland下运行时,Van Vugt一直专注于改进GNOME中的辅助GPU支持。这项工作的一部分是致力于dGPU的零拷贝支持,他与Nouveau驱动程序合作。
Daniel在
合并请求草稿
:
“零拷贝是为DisplayLink编写的,以前只在DisplayLink上尝试过(根据我的经验,它总是在那里工作)。现在我们也在离散GPU上尝试过。这似乎只适用于nouveau,但好处是巨大的:
之前:6.9ms辅助GPU拷贝
之后:0.8毫秒零拷贝”
从辅助GPU拷贝的6.9毫秒到支持零拷贝的0.8毫秒是一个显著的节约。尽管现在使用新运动驱动程序也是一个好坏参半的问题。。。看起来这可能只适用于Nouveau/NVIDIA,而不适用于其他硬件。Red Hat的Michel Dänzer在评论中写道:
“零拷贝意味着辅助GPU直接从主GPU导入的缓冲区中扫描出来,对吧?如果是这样的话,至少AMD和Intel的辅助dGPU是不起作用的,因为它们只能从VRAM扫描出来,但不同GPU之间共享的缓冲区通常固定在系统内存上。我想理论上Nvidia dGPU可以从系统内存中扫描出来然而,这并不令人惊讶。“
Van Vugt followed-up that he successfully confirmed that zero-copy is indeed working with Nouveau. It will be interesting to see where this work leads and if it ends up being suitable for mainlining this GNOME cycle.