Поддержка WebGPU появилась в ночных версиях Firefox

Выпущена информация по интеграции справочной спецификации WebGPU в ночных сборках Firefox, которые теперь предоставляет программный интерфейс для обработки трехмерной графики и вычисления на стороне GPU, концептуально аналогичные Vulkan API, metal и Direct3D 12. Спецификация разрабатывается Mozilla, Google, Apple, Microsoft и представителями сообщества в рабочей группе, созданной организацией W3C.

Ключевой целью WebGPU является создание безопасного, удобного, портативного и высокопроизводительного программного интерфейса. для использования на веб-платформе с технологией 3D-графики и возможностями, предоставляемыми современными API-интерфейсами системной графики, такими как Direct3D 12 в Windows, Metal в macOS и Vulkan в Linux.

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

В Firefox для включения WebGPU предоставляется параметр dom.webgpu.enabled. в about: config. В дополнение к рендерингу CanvasContext также требуется включение системы композиции WebRender ("gfx.webrender.all" в about: config).

Реализация WebGPU основана на коде проекта wgpu, написанном на Rust, и может работать поверх API DX12, Vulkan и Metal в Linux, Android, Windows и macOS (поддержка DX11 и OpenGL ES 3.0 также находится в стадии разработки).

О WebGPU

Веб-графический процессор предоставляет приложениям JavaScript инструменты для управления нижнего уровня об организации обработка и передача команд на GPU, управление связанными ресурсами, памятью, буферами, объектами текстуры и скомпилированными графическими шейдерами. Такой подход будет обеспечивает более высокую производительность графических приложений за счет снижения накладных расходов и повышения эффективности работы с графическим процессором.

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

также предоставляет дополнительные возможности за счет переноса собственных графических программ в форму, которая может функционировать на основе веб-технологий с помощью технологии WebAssembly.

Помимо 3D-графики, WebGPU также охватывает возможности, связанные с отказом от вычислений рядом с графическим процессором. и поддержка разработки шейдеров. Шейдеры могут быть созданы на языке шейдеров WebGPU или указаны в промежуточном формате SPIR-V, а затем переведены на языки шейдеров, поддерживаемые текущими драйверами.

Веб-графический процессор использует раздельное управление ресурсами, подготовительные работы и передачу команд на GPU (в WebGL за все сразу отвечал один объект). Предоставляются три отдельных контекста: GPUDevice для создания ресурсов, таких как текстуры и буферы; GPUCommandEncoder для кодирования отдельных команд, включая этапы рендеринга и вычислений; GPUCommandBuffer поставить в очередь на выполнение на графическом процессоре.

Второе различие между WebGPU и WebGL - это другой подход к обработке состояний. В WebGPU предлагается два объекта: GPURenderPipeline и GPUComputePipeline, которые позволяют комбинировать несколько состояний, предопределенных разработчиком, что позволяет браузеру не тратить ресурсы на дополнительную работу, такую ​​как перекомпиляция шейдеров. К поддерживаемым состояниям относятся: шейдеры, буферы вершин и макеты атрибутов, макеты присоединенных групп, смешивание, глубина и шаблоны, форматы вывода после рендеринга.

Третья особенность WebGPU - это модель привязки., что во многом напоминает средства объединения ресурсов, имеющиеся в Vulkan. Чтобы сгруппировать ресурсы в группы, WebGPU предоставляет объект GPUBindGroup, который путем ввода команд может быть связан с другими подобными объектами для использования в шейдерах.

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

источник: https://hacks.mozilla.org/


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

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

*

*

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