Загрузки изображения из нескольких текселей
IMAGE_LOAD_BY2, BY4, PCK2 и PCK4, включая формы с явным mip, исполняются для измеренных нативных двумерных форматов. Загрузка BY возвращает последовательные тексели. Загрузка PCK упаковывает их сырые биты в один регистр.
Заметки репозитория по 10 октября 2026 г.
BY и PCK
Загрузка BY пишет последовательные тексели в отдельные VGPR, каналы упорядочены внутри каждого текселя. Загрузка PCK упаковывает сырые биты компонент в один 32-битный VGPR, первый тексель — в младших битах. Знаковые компоненты усекаются до ширины хранения. Компоненты UNORM восстанавливаются преобразованием с округлением до чётного.
Первый тексель выравнивается вниз до группы из двух или четырёх по X. Проверка границ использует исходную, невыровненную координату: вся группа должна поместиться до выравнивания, Y должен быть в диапазоне, и запрошенный mip должен существовать. Недопустимая группа обнуляет каждый регистр результата и не трогает посторонние назначения. Недопустимые координаты заменяются безопасными операндами выборки, прежде чем их увидит Vulkan.
Какие форматы
BY2 с DMASK 0x3 покрывает R8 и R16 в UNORM, SNORM, UINT, SINT и R16 FLOAT. BY2 с DMASK 0xF покрывает RG8 UNORM, SNORM, UINT и SINT. BY4 с DMASK 0xF покрывает R8 в этих четырёх числовых типах. PCK2 с DMASK 0x1 покрывает R8, R16 и RG8 UNORM, UINT и SINT. PCK4 с DMASK 0x1 покрывает R8 UNORM, UINT и SINT. Варианты этих загрузок с явным mip используют те же списки форматов.
Бэкенд даёт переводу точный нативный формат. Раздельные банки семплированных изображений UINT и SINT держат целые результаты правильно типизированными рядом с банками с плавающей точкой и сравнения. Координаты NSA, перекрывающиеся регистры адреса и назначения и обычная маска EXEC сохраняются.
Чем это изменение не является
Отчёт от 9 октября — это общая поддержка шейдера и бэкенда. Он не зависит от идентификатора игры или хеша шейдера. Из одних этих загрузок не заявляется ни результат совместимости игры, ни изменение частоты кадров.
Записи и сочетания формата или дескриптора, которых не было в измеренном наборе, остаются неподдерживаемыми. Горизонтальные выборки — соседнее семейство инструкций, и у них своя страница.
Что реализовано
- Измеренные двумерные загрузки BY2, BY4, PCK2 и PCK4, с явным mip и без него.
- Выравнивание группы, проверенные границы и обнулённые результаты для недопустимой группы.
- Раздельные банки целых семплированных изображений, чтобы UINT и SINT оставались типизированными.
- Сохранённые маски EXEC, координаты NSA и перекрывающиеся пары регистров.
Чего ещё нет
- Записи в изображение этих форм не реализованы.
- Форматы и режимы дескрипторов вне измеренной таблицы отвергаются.
- Тесты не устанавливают новую цифру кадров в секунду ни для одной игры.
Связанные механизмы
Чему посвящены эти страницы