Chrome уже будет иметь поддержку WebGPU и будет включен по умолчанию.

Веб-ГПУ Chrome

После нескольких лет разработки команда Chrome выпускает WebGPU

Несколько дней назад Google представил через один объявленный поддержка по умолчанию графического API WebGPU и язык затенения WebGPU (WGSL) в ветке Chrome 113, релиз которого запланирован на 2 мая.

Для тех, кто не знает о WebGPU, вы должны знать, что предоставляет API, аналогичный Vulkan, Metal и Direct3D 12. для выполнения операций на стороне графического процессора, таких как рендеринг и вычисления, а также позволяет использовать язык шейдеров для написания программ на стороне графического процессора.

О WebGPU

Концептуально, WebGPU отличается от WebGL так же, как графический API Vulkan отличается от OpenGL. но WebGPU не основан на конкретном графическом API, а представляет собой слой общего назначения, использующий те же низкоуровневые примитивы, что и в Vulkan. Металл и Direct3D. WebGPU предоставляет приложениям JavaScript низкоуровневый контроль над организацией, обработка и передача команд графическому процессору, управление связанными ресурсами, памятью, буферами, текстурными объектами и скомпилированными графическими шейдерами. Этот подход позволяет достичь более высокой производительности графических приложений за счет снижения накладных расходов и повышения эффективности графического процессора.

Веб-графический процессор позволяет создавать сложные 3D-проекты для Интернета которые работают так же хорошо, как и отдельные программы, которые напрямую используют Vulkan, Metal или Direct3D, но не привязаны к конкретным платформам. WebGPU также предоставляет дополнительные возможности для портирования собственных графических программ. в веб-форму путем компиляции в WebAssembly. В дополнение к 3D-графике WebGPU также охватывает возможности, связанные с переносом вычислений на сторону GPU и запуском шейдеров.

Из ключевых особенностей WebGPU можно выделить следующие:

  • Раздельное управление ресурсами, подготовительная работа и передача команд на GPU (в WebGL за все сразу отвечал один объект). Предоставляются три отдельных контекста: GPUDevice для создания ресурсов, таких как текстуры и буферы; GPUCommandEncoder для кодирования отдельных команд, включая этапы обработки и расчета; GPUCommandBuffer для передачи в очередь выполнения GPU.
    Результат может отображаться в области, связанной с одним или несколькими элементами холста, или отображаться без вывода (например, при выполнении вычислительных задач). Постановка позволяет легко разделить операции создания и предоставления ресурсов на разные контроллеры, которые могут выполняться в разных потоках.
  • Другой подход к обработке состояния. WebGPU предоставляет два объекта, GPURenderPipeline и GPUComputePipeline, которые позволяют вам комбинировать различные состояния, предварительно определенные разработчиком, что позволяет браузеру не тратить ресурсы на дополнительную работу, такую ​​как перекомпиляция шейдеров. Поддерживаемые состояния включают в себя: шейдеры, макеты буфера вершин и атрибутов, фиксированные макеты групп, смешивание, глубину и шаблоны, форматы вывода после рендеринга.
  • Модель привязки, очень похожая на инструменты объединения ресурсов Vulkan.. Чтобы сгруппировать ресурсы в группы, WebGPU предоставляет объект GPUBindGroup, который можно привязать к другим подобным объектам для использования в шейдерах во время записи команд.
    Создание таких групп позволяет контроллеру заранее выполнять необходимые подготовительные действия и позволяет браузеру намного быстрее переключать привязки ресурсов между вызовами отрисовки. Компоновку привязок ресурсов можно предварительно определить с помощью объекта GPUBindGroupLayout.

Помимо Хрома, экспериментальная поддержка WebGPU тестируется с апреля 2020 года в Firefox а с ноября 2021 г. в Safari. Чтобы включить WebGPU в Firefox, вы должны установить флаги dom.webgpu.enabled и gfx.webgpu.force-enabled в about:config.

Пока нет планов включать WebGPU по умолчанию в Firefox и Safari. Реализации WebGPU, разработанные для Firefox и Chrome, доступны в виде отдельных библиотек: Dawn (C++) и wgpu (Rust), которые вы можете использовать для интеграции поддержки WebGPU в свои приложения.

Также следует отметить, что ведется работа по добавлению поддержки WebGPU в популярные библиотеки JavaScript, изначально использующие WebGL. Например, полная поддержка WebGPU уже заявлена ​​в Babylon.js и частичная в Three.js, PlayCanvas и TensorFlow.js.

Реализация Первоначально WebGPU будет включен только в сборках для ChromeOS, macOS и Windows. в то время как для Linux и Android поддержка WebGPU будет активирована позднее.

Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.