Перейти к содержимому
PS5PCEM
ЧастичноГрафика

Трекер страниц GPU

Включаемый явно трекер страниц наблюдает гостевые страницы по 16 KiB. Первая нативная запись CPU вызывает отказ, продвигает поколение и инвалидирует копию GPU, чтобы неизменные страницы не хешировались и не загружались каждый кадр.

Заметки репозитория по 10 октября 2026 г.

Какую задачу он решает

Цель рендеринга или вершинный буфер, которые живут в гостевой памяти, должны дойти до GPU. Загружать всё выделение каждый кадр правильно и дорого. Хешировать всё выделение, чтобы обнаружить, что оно не изменилось, тоже дорого. Трекер страниц вместо этого помечает отслеживаемую записываемую страницу только для чтения и даёт CPU получить отказ на первой записи.

Обработчик отказа записывает страницу, восстанавливает настоящую защиту гостя и продвигает поколение этой страницы. Более поздняя отрисовка сравнивает поколения. Неизменная страница остаётся на устройстве. Страница, чьё поколение сдвинулось, загружается. PS5_GPU_PAGE_TRACKER=1 включает механизм. Он выключен, если не задана эта переменная или экспериментальный набор.

Чем является отказ

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

Отображения прямой памяти, которые создаются заново с тем же адресом, размером, физическим смещением и правами CPU, сохраняют свои представления хоста. Именно это повторное использование делает поколение осмысленным между кадрами. Смена хранения или прав идёт обычным путём замены, и трекер наблюдает новое отображение.

Чего он не делает

Трекер не уменьшает внутреннее разрешение игры и не компилирует шейдеры. Он только убирает повторные передачи страниц, в которые CPU не писал. Игра, которая переписывает буфер каждый кадр, всё равно платит за этот буфер.

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

Что реализовано

  • Поколения на страницу для гостевых страниц 16 KiB, когда PS5_GPU_PAGE_TRACKER=1.
  • Отказ на первой записи, который восстанавливает защиту гостя и инвалидирует резидентную копию.
  • Повторное использование одинаковых представлений прямой памяти, чтобы поколения переживали кадры.
  • Инвалидация, когда сам HLE пишет наблюдаемую страницу.

Чего ещё нет

  • Трекер включается явно. Путь совместимости по умолчанию от него не зависит.
  • Страницы, которые CPU переписывает каждый кадр, всё ещё загружаются.
  • Он не покрывает согласованность GPU с GPU внутри сжатой поверхности метаданных.

Связанные механизмы

Чему посвящены эти страницы

Текст следует архитектурным заметкам и отчётам октября 2026 года в репозитории PS5PCEM. Пройденный точечный тест — это не новая частота кадров и не новое прохождение.

Все технологии