Перейти к содержимому
PS5PCEM
РаботаетГрафика

Рендерер Vulkan

Бэкенд Vulkan загружает драйвер во время выполнения, требует Vulkan 1.2 и показывает гостевые кадры через цепочку обмена. Цели рендеринга, изображения хранения и конвейеры остаются резидентными между отрисовками.

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

Устройство и память

Рендерер сам загружает загрузчик Vulkan платформы, поэтому сборке не нужны заголовки Vulkan SDK. Инициализация запрашивает Vulkan 1.2, версию, которая принимает SPIR-V 1.5 транслятора, и предпочитает дискретное устройство с семейством очередей, способным и на графику, и на вычисления. Слои проверки запрашиваются в отладочных сборках, если они установлены.

Одна раскладка дескрипторов держит 64 буфера хранения, раздельные массивы семплированных изображений 2D и 3D по 64 элемента и типизированные изображения хранения. Кольцо из 512 наборов, арена загрузки 128 MiB и постоянные гостевые цели рендеринга держат ресурсы кадра на устройстве. Переводы графики используют кэш 256 MiB на 1024 записи. Потоковая сцена превышала старый бюджет 64 MiB и переводила те же модули заново каждый кадр.

Конвейеры и таймлайны

Компиляция конвейеров по умолчанию использует двух работников. PS5_GPU_COMPILER_WORKERS может задать от одного до четырёх. PS5_GPU_ASYNC_PIPELINES=0 возвращает синхронную компиляцию и выключает прогрев вычислений. Прогрев при следующем запуске проигрывает ранее скомпилированные вычислительные модули в кэш драйвера. Он никогда их не диспетчеризует и уничтожает временные конвейеры. Кэш драйвера также хранится в vulkan_pipeline_cache.bin, до 4 GiB. Повреждённый файл отбрасывается. Он может повлиять только на время запуска.

Профиль совместимости по умолчанию ждёт каждый поданный пакет. Планировщик таймлайна, выбираемый через PS5_GPU_TIMELINE_SCHEDULER=1, позволяет нескольким пакетам оставаться в полёте и ждёт у настоящего обратного чтения, точки синхронизации гостя или исчерпанного кольца ресурсов. Одна игра, PPSA25872, включает этот планировщик и отложенную обратную запись малого хранилища сама после измеренных сравнений. Раскладка изображения отслеживается по аспекту, mip и слою массива, а барьеры берутся из предыдущего использования этого подресурса.

Форматы и резидентность

Достижимы 56 форматов хоста, включая BC1–BC7, целые и нормализованные каналы, R16 и RG16, формат половинной точности и RGBA32_FLOAT. Гостевые выделения изображений делят один реестр псевдонимов между цветом, глубиной, хранением и семплированием. Более поздний проход может семплировать цель глубины, которую написал более ранний проход, без кругового пути через гостевую память, если сигнатуры совпадают. Переинтерпретации и частичные перекрытия идут обратно через гостевую память.

Вычислительный разворот тайлов на GPU покрывает стандартные поверхности и поверхности PRT размером 4, 8 и 16 байт в 2D и 3D. Разворот RB+ и MSAA всё ещё идёт на CPU. Односемпловые упакованные цели 11/11/10 UNORM смешиваются через копию в буфер хранения и фрагментные распаковку, смешивание и переупаковку. VideoOut — это цепочка обмена поверх этих изображений.

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

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

Чего ещё нет

  • Профиль по умолчанию всё ещё ждёт каждый пакет. Подача по таймлайну включается явно.
  • Разворот RB+ и MSAA использует CPU.
  • Освещение игр и каждый путь сжатых метаданных не следуют из списка форматов.

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

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

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

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