Перейти к содержанию
ERITKOM
ВебРазбор

WebGPU в Chrome 155–156: новые размеры текстур и линейные цветовые пространства

Октябрьский обзор WebGPU описывает дополнительные возможности графического API. Часть функций зависит от адаптера, а fragment_depth временно отключена из-за ошибок компиляции шейдеров — это существенное условие доступности.

Официальная иллюстрация Chrome for Developers: WebGPU в Chrome 155–156: новые размеры текстур и линейные цветовые пространства
Google / Chrome for Developers

Не все пункты обзора одинаково доступны

WebGPU предоставляет браузерному приложению средства рендеринга и вычислений на GPU. В обзоре Chrome 155–156 команда перечисляет несколько расширений, но рядом с fragment_depth размещено предупреждение о временном отключении на всех платформах из-за ошибок компиляции на Windows. Поэтому копировать список возможностей без оговорки нельзя. Функция могла быть описана и подготовлена к выпуску, но оставаться недоступной в фактической среде. Статус проверялся 30 октября; он не является обещанием срока повторного включения.

Сжатая текстура не обязана быть кратна блоку

texture-compression-unaligned позволяет создавать сжатые текстуры, размеры которых не являются целым кратным размеру блока. До этого требование выравнивания могло приводить к дополнительному заполнению или изменению размеров. Для приложений это уменьшает число преобразований исходного ресурса. Однако возможность запрашивается явно и проверяется через набор features адаптера. Наличие WebGPU в браузере ещё не означает поддержку каждого необязательного расширения. Форматы, аппаратная платформа и драйвер остаются частью условий исполнения, поэтому путь без дополнительной функции всё ещё может понадобиться. Сжатие текстур работает блоками, поэтому ограничения их размеров относятся к представлению ресурса, а не к размеру видимого объекта в сцене. Расширение unaligned меняет допустимую геометрию ресурса, сохраняя выбранный формат сжатия. Цветовое пространство выхода относится к другому этапу конвейера. Даже при одинаковых размерах текстуры линейное смешивание и смешивание уже преобразованных значений могут давать разный результат. Именно поэтому текстурное расширение и новые линейные пространства перечислены как отдельные возможности, а не одна общая настройка качества изображения.

Линейный цвет — часть вычислительной модели

Новые srgb-linear и display-p3-linear позволяют выводить canvas в расширенные линейные пространства. Линейность означает соответствие числовых операций физической яркости, что важно для освещения и смешивания. Она не равна автоматическому улучшению любой картинки: приложение должно правильно понимать исходные данные и формат целевой поверхности. Неправильное смешивание разных пространств способно изменить вид изображения. Спецификация WebGPU разделяет конфигурацию canvas, форматы текстур и возможности устройства; у каждого из этих уровней собственные ограничения и назначение.

Язык шейдеров развивается отдельно от API

WGSL описывает программы, исполняемые на графическом процессоре. Возможности языка можно проверять отдельно от features устройства. Это важно для переносимости: браузерная поддержка API и доступность конкретного расширения WGSL — не одно условие. В октябрьском обзоре также отмечена поддержка shader-f16 на Linux с достаточно новыми драйверами NVIDIA. Подобное сообщение нельзя расширять до всех видеокарт Linux. Для каждого пути желательно понимать, какое аппаратное или программное условие требуется и что произойдёт при его отсутствии.

Необязательные возможности включаются отдельно

Набор features относится к выбранному GPU-адаптеру, а дополнительные возможности запрашиваются при создании устройства. Поддержка языка WGSL проверяется другим механизмом. Поэтому одно общее условие navigator.gpu не отвечает на вопрос о сжатых текстурах, f16 или расширении глубины. В модели WebGPU поверхность canvas и используемые внутри программы текстуры также имеют разные форматы и назначения. Изменение выходного цветового пространства не преобразует автоматически все входные ресурсы. Упомянутое в обзоре временное отключение fragment_depth действует на всех платформах, несмотря на то что причиной названы ошибки компиляции на Windows; срок повторного включения в проверенном материале не указан.

Источники

Принципы журнала и исправления.

ERITKOM / НОВЫЙ ПРОЕКТ

Расскажите о задаче и оставьте контакты. Мы свяжемся с вами, чтобы обсудить проект.

  1. 01 Контакты
  2. 02 Ваша задача