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

HTILE, DCC, CMASK и FMASK

HTILE, DCC, CMASK и FMASK — сжатые метаданные глубины и цвета консоли. PS5PCEM отслеживает указатели, очищает HTILE в понятных ему случаях и отказывается от раскладки, которую иначе развернул бы из тайлов неверно.

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

Что означают четыре имени

HTILE — метаданные глубины. В шаблоне GFX10, который реализует PS5PCEM, одно dword покрывает область 8×8 пикселей, и эти dword упакованы в блок 32 KiB, который покрывает 1024 на 512 пикселей. DCC — дельта-сжатие цвета для цветовых целей. CMASK — маска быстрой очистки и расширения. FMASK говорит сведению мультисемплинга, какой семпл принадлежит какому пикселю.

Снимок ресурса хранит указатели метаданных и селекторы раскладки, включая бит линейного CMASK у GFX10. Этот бит важен, потому что применение уравнения тайлового адреса к линейному CMASK молча перемешало бы маску. Бэкенд отвергает неподдерживаемую раскладку вместо этого.

Очистки и глубина

Верные очистки HTILE и DCC реализованы для раскладок, которые понимает рендерер. Повторные очистки метаданных покрыты пробой vulkan-smoke htile-clears. Сброшенный экстент глубины восстанавливается только для активной поверхности на HTILE, что сохраняет G-buffer Ghost of Yōtei целым и всё же позволяет устаревшей привязке глубины интерфейса 1×1 провалить проверку размера вложения.

Односемпловые гостевые глубина и трафарет можно импортировать и записать обратно, когда PS5_GPU_DEPTH_TRANSFER=1. Привязанные плоскости трафарета становятся упакованными вложениями глубина-плюс-трафарет с гостевыми операциями сравнения и обновления. Мультисемпловая глубина использует путь MSAA. Сжатый диапазон Z и иерархический Z внутри HTILE интерпретируются не полностью.

Что всё ещё сказано явно

Оставшаяся работа, как сказано в заметках GPU, — это остальные виды слоёв, оставшиеся сжатые состояния DCC и FMASK, диапазон Z и Hi-Z у HTILE и состояния CMASK, связанные с FMASK. Неподдерживаемый импорт MSAA сохраняет очистку первого использования. Семплирование сжатой поверхности так, будто это обычные тексели, — как раз тот сбой, которого этот отказ существует, чтобы избежать.

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

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

  • Адресация HTILE pattern-21: одно dword на 8×8, в блоках 32 KiB.
  • Очистки HTILE и DCC для раскладок, которые понимает рендерер.
  • Обнаружение линейного CMASK, которое отказывается применять тайловое уравнение к линейной маске.
  • Явно включаемые импорт и обратная запись односемпловых глубины и трафарета.

Чего ещё нет

  • Полная интерпретация диапазона Z и иерархического Z у HTILE неполна.
  • Сжатые состояния DCC и FMASK, а также CMASK, связанный с FMASK, остаются вне быстрого пути.
  • Неподдерживаемый сжатый импорт очищается, а не семплируется как сырые тексели.

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

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

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

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