VideoOut
VideoOut регистрирует буферы изображения гостя и завершает переворот только после того, как обратный вызов представления принял кадр. Окно хоста — это цепочка обмена Vulkan в 1080p SDR.
Заметки репозитория по 10 октября 2026 г.
Регистрация и перевороты
VideoOut держит до 16 зарегистрированных выделений изображения и 4 группы атрибутов. Он публикует непрерывную запись из 16 меток, которую использует ABI драйвера. Регистрация, изменение и снятие регистрации проверяются. Пустой переворот буфера -1, которым игры пользуются при запуске, принимается.
Перевороты CPU и перевороты конца конвейера идут через живой бэкенд буфера команд. Обычный переворот становится завершённым только после того, как обратный вызов представления принимает кадр. Завершение доставляется в очередь событий VideoOut с пользовательскими данными вызывающего. Фильтр очереди — та же реализация событий пользовательского края, что у ядра, и идентификатор регистрации сохраняется.
Что показывает хост
Окно игры — цепочка обмена Vulkan. VideoOut сообщает 1080p SDR. 120 Hz сообщается как недоступный. Предпочтение игры по умолчанию просит режим производительности. Внутреннее разрешение остаётся под контролем игры: игра, которая рендерит в 4K, всё равно выделяет цели 4K, а цепочка обмена показывает тот скан-аут, который зарегистрировала игра.
SetFlip разрешает слот VideoOut и индекс буфера, выбирает кэшированную цель с совпадающим гостевым адресом и публикует кадр. Частоту переворотов можно показать в заголовке окна. Лаунчер хранит это предпочтение, а запуск из командной строки может задать PS5_SHOW_FPS=1.
Фильмы и скан-аут
Вступительные фильмы не обходят VideoOut. AvPlayer декодирует в буферы, которыми владеет игра, а собственные шейдеры игры или зарегистрированный скан-аут их показывают. Asterix сохраняет отрицательную высоту окна просмотра гостя как ориентацию скан-аута, поэтому композит не переворачивается вверх ногами на выходе.
Отсутствующий загрузчик Vulkan, отсутствующее устройство представления или отсутствующее окно сообщаются, и игра продолжает путь без окна. Режим без окна нужен для диагностики. Это не второй, более быстрый рендерер.
Что реализовано
- До 16 буферов изображения, 4 группы атрибутов и ABI из 16 меток.
- Перевороты, которые завершаются только после того, как обратный вызов представления принял кадр.
- Цепочка обмена Vulkan, сообщающая 1080p SDR, при этом 120 Hz остаётся недоступным.
- Предпочтение режима производительности по умолчанию и необязательный заголовок с частотой переворотов.
Чего ещё нет
- 120 Hz и цепочка обмена HDR хоста не предлагаются.
- Внутреннее разрешение — то, что выделяет игра.
- Без устройства представления процесс остаётся без окна.
Связанные механизмы
Чему посвящены эти страницы