Google представил обновления WebGPU для Chrome 155 и 156. Изменения затрагивают работу с глубиной фрагментов, сжатыми текстурами, цветовыми пространствами, форматами вершинных данных и 16-битными вычислениями на видеокартах NVIDIA под Linux.
WebGPU — веб-API для использования графического процессора при рендеринге 3D-графики и выполнении вычислений непосредственно в браузере.
Основные изменения WebGPU
Расширение WGSL fragment_depth
Новое расширение языка шейдеров WGSL расширяет возможности работы с глубиной фрагментов и оптимизациями раннего тестирования глубины (early-Z). Это может помочь разработчикам эффективнее организовать рендеринг, однако реальный выигрыш в производительности зависит от графического конвейера и оборудования.
Сжатые текстуры нестандартных размеров
Функция texture-compression-unaligned позволяет использовать сжатые текстуры, размеры которых не кратны размерам блоков сжатия. Это упрощает работу с графическими ресурсами, не требуя искусственного увеличения их размеров до границ блоков.
Новые линейные цветовые пространства
Добавлены srgb-linear и display-p3-linear. Они позволяют использовать линейное представление цвета, в том числе для вывода графики с расширенным цветовым диапазоном.
Такие возможности востребованы при физически корректном освещении, обработке HDR-графики, интерполяции и сглаживании изображений.
Компактный формат вершинных данных
Формат snorm10-10-10-2 позволяет хранить четыре нормализованных компонента в 32 битах: три по 10 бит и один 2-битный компонент.
Это полезно для хранения нормалей 3D-моделей и дополнительных атрибутов при снижении объёма передаваемых данных.
Поддержка shader-f16 для NVIDIA под Linux
Для совместимых современных драйверов NVIDIA под Linux стала доступна опциональная возможность shader-f16, позволяющая использовать 16-битные числа с плавающей точкой в шейдерах WGSL.
Перед использованием разработчикам необходимо проверить поддержку этой функции на конкретном графическом адаптере.
Изменения в Dawn
В реализации WebGPU Dawn появилась возможность получать LUID графического адаптера DXGI через структуру WGPUAdapterPropertiesD3D. Это полезно для приложений, которым требуется сопоставление графических адаптеров в Windows.
Как проверить поддержку WebGPU
Разработчики могут использовать navigator.gpu для получения графического адаптера, а коллекцию adapter.features — для проверки доступности отдельных возможностей.
Наличие WebGPU само по себе не гарантирует поддержку всех новых расширений: она зависит от браузера, операционной системы, GPU и драйверов.
Что означают обновления
Изменения расширяют возможности браузерной 3D-графики, визуализации и вычислений на GPU. Особенно полезными они могут оказаться для разработчиков игр, графических редакторов, визуализаторов и других приложений с интенсивной обработкой графики.
Источник: Chrome for Developers — What’s New in WebGPU (Chrome 155–156).