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

Разворот тайлов текстур

Текстуры PS5 хранятся в схемах свизла GFX10, а не линейными строками. PS5PCEM применяет адресные уравнения на CPU и на GPU для крупных поверхностей по 4, 8 и 16 байт, которые подходят.

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

Адресные уравнения

Тайловая текстура складывает по XOR координату пикселя с битами канала, банка и семпла, чтобы соседние пиксели попадали в разные каналы памяти. PS5PCEM реализует уравнения GFX10 для линейных раскладок, стандартных тайлов Standard по 256 байт, 4 KiB и 64 KiB, частично резидентных тайлов 64 KiB, глубины Z_X и цели рендеринга R_X. Тот же контракт покрывает хвосты mip и толстые трёхмерные блоки.

До 16 уровней mip размещаются начиная с самых малых. Малые уровни делят точные позиции хвоста mip на 4 KiB и 64 KiB. Трёхмерные ресурсы используют толстые блоки и срезы блоков по глубине. Каждый подресурс открывает одно проверенное смещение исходного байта. Адаптеры буфера, изображения, блочного сжатия, цветовой цели и цели глубины ничего не выделяют и отвергают переполнение или короткий диапазон.

Разворот на GPU и откат на CPU

Загрузки первого использования крупных стандартных поверхностей по 4 байта с тайлами 256 байт, 4 KiB и 64 KiB, а также крупных линейных поверхностей, разворачиваются на GPU. Вычислительное ядро получает ключ без указателя и блок параметров из 84 байт: размер блока, хвост, шаг, срез, число семплов и 64-битное смещение буфера, в устойчивой раскладке целиком из 32-битных полей. Поверхности 2D и 3D standard и PRT по 8 и 16 байт входят в то же семейство GPU.

Остальные семейства остаются на CPU, включая RB+ и MSAA. Уравнения Oberon для них включают биты семплов, и путь CPU их использует. Откат — это цена полосы пропускания. Это не другой формат пикселя. Диагностика живой отрисовки сообщает семейство, размеры трёхмерного блока, число семплов, границу хвоста mip и размер гостевого выделения.

Почему разворот тайлов виден во времени кадра

Текстура, которую загружают заново каждый кадр, платит цену разворота каждый кадр. Трекер страниц, когда он включён, позволяет неизменной странице оставаться резидентной, поэтому разворот пропускается. Текстуру, которую переписал сам GPU, всё равно нужно инвалидировать. Разворот тайлов не заменяет это правило согласованности.

Семплируемые виды разворачивают диапазон mip, который называет дескриптор, включая ненулевой базовый уровень. Mip 0 изображения Vulkan в этом случае — базовый уровень вида. Перестановки компонент, которых всё ещё нет в пути вида, — отдельное ограничение, не адресное уравнение.

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

  • Адресные уравнения GFX10 для linear, Standard, PRT, глубины и цели рендеринга, включая хвосты mip и трёхмерные блоки.
  • Вычислительный разворот на GPU для крупных поверхностей 2D и 3D standard и PRT по 4, 8 и 16 байт.
  • Разворот на CPU для остальных семейств, включая биты семплов MSAA и RB+.
  • Проверенные смещения подресурсов, которые отвергают короткие диапазоны и переполнения.

Чего ещё нет

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

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

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

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

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