Что такое «Перевертывание страницы» на Xorg?

Копая в журналах Xorg, я видел, что существует функция, называемая «Перевертывание страницы». Поисковые системы показывают только отчеты об ошибках, но не полное описание.

Итак, можете ли вы дать мне техническое описание этой функции ?. Я не хочу, чтобы комментарии вроде «хороши для производительности» или «плохо для чего угодно». Просто полное описание.

В Википедии есть эта запись :

Поскольку фреймбуферы часто предназначены для обработки более одного разрешения, они часто содержат больше памяти, чем необходимо для отображения одного кадра при более низких разрешениях. Поскольку эта память может быть значительной по размеру, был разработан трюк, позволяющий записывать новые кадры в видеопамять, не нарушая отображаемый в данный момент кадр.

Концепция работает, сообщая фреймбуферу использовать определенный фрагмент своей памяти для отображения текущего кадра. Пока эта память отображается, полностью отдельная часть памяти заполняется данными для следующего кадра. Как только вторичный буфер заполняется (часто называемый «обратным буфером»), фреймбуферу предлагается вместо этого посмотреть на вторичный буфер. Первичный буфер (часто называемый «передним буфером») становится вторичным буфером, а вторичный буфер становится основным. Этот переключатель обычно выполняется во время вертикального интервала гашения, чтобы предотвратить «разрывание» экрана (т. Е. Отображается половина старого кадра, и отображается половина нового кадра).

Большинство современных фреймбуферов производятся с достаточной памятью для выполнения этого трюка даже при высоких разрешениях. В результате он стал стандартной методикой, используемой программистами для ПК.

Он также называется двойной буферизацией, и в OSDev Wiki существует более обширное объяснение.