From b65209856590deb0aa01aa04d067afe75afe4363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Date: Wed, 5 Feb 2025 19:10:20 +0100 Subject: [PATCH] docs/multi-gpu: Document copy modes In preparation to allow to select the copy mode, document them. Part-of: --- doc/multi-gpu.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/doc/multi-gpu.md b/doc/multi-gpu.md index bce1b1963..777c35a7d 100644 --- a/doc/multi-gpu.md +++ b/doc/multi-gpu.md @@ -40,3 +40,23 @@ Created gbm renderer for '/dev/dri/card1' Created gbm renderer for '/dev/dri/card2' GPU /dev/dri/card1 selected primary given udev rule ``` + +## Copy modes + +Mutter composites the buffer to be displayed on all displays on the primary GPU, +regardless of which GPU the display is connected to. + +Therefore, when a display is connected to a secondary GPU, the contents to be +displayed on that display need to be copied from the primary GPU to the +secondary GPU. + +There are 3 copy modes available: + + - Secondary GPU copy mode: The copy is performed by the secondary GPU. This is + the default copy mode. + - Zero-copy mode: The primary GPU exports a framebuffer and the secondary GPU + imports it. This mode is tried if the secondary GPU copy mode fails. + - Primary GPU copy mode: The primary GPU copies its contents to a dumb buffer + and the secondary GPU scan-outs from it. First, the GPU is used to perform + the copy and, if it fails, the copy is perform by the CPU. This mode is used + if the zero-copy mode fails.