WebGPU

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

WebGPU — это рабочее имя будущего веб стандарта и JavaScript API для аппаратно-ускоренной графики и вычислений, нацеленное предоставить «новейшую 3D графику и вычислительные возможности». Разработан W3C GPU for the Web группой с инженерами из Apple, Mozilla, Microsoft, Google и других[1].

В отличие от WebGL, WebGPU не является прямым портом какого-либо существующего нативного API. Он основан на API, предоставляемых Vulkan, Metal, и Direct3D 12 и предназначен для обеспечения высокой производительности через мобильные и настольные платформы[2]. Мобильные платформы будут ограничены в создании объектов WebGPUDevice которые потребуют современных графических API (упомянутых выше).[note 1]

Первый концептуальный прототип под названием NXT был продемонстрирован в начале 2017 года командой Chromium.

Команда разработчиков Google Chrome назвала его «преемником» API-интерфейсов JavaScript WebGL/2[3].

История

8 июня 2016 года Google представил презентацию «Явное API веб-графики» (англ. Explicit web graphics API) в рабочей группе WebGL (во время личной встречи, проводимой два раза в год)[4]. В презентации были рассмотрены основные идеи и принципы создания нового API, который в конечном итоге заменит WebGL, также известный как «WebGL Next».

24 января 2017 года компания Khronos провела встречу, посвященную обсуждению идей «WebGL Next», совпавшую с заседанием рабочей группы WebGL в Ванкувере[5]. Команда Google представила прототип NXT, реализующий новый API, который может работать в Chromium с OpenGL или автономно с OpenGL и Metal. NXT заимствовал концепции всех API-интерфейсов Vulkan, Direct3D 12 и Metal. Представители Apple и Mozilla также продемонстрировали свои прототипы, построенные на Safari и Servo соответственно, оба из которых полностью копируют Metal API.

Рабочая группа W3C

7 февраля 2017 года команда Apple WebKit предложила создать группу сообщества W3C для разработки API. В то же время они объявили техническое доказательство концепции и предложение под названием «WebGPU», основанный на концепциях Apple Metal[6][7][8]. Название WebGPU было позже принято группой сообщества в качестве рабочего названия для будущего стандарта, а не просто первоначального предложения Apple[2]. Первоначальное предложение было переименовано в «WebMetal», чтобы избежать дальнейшей путаницы[9].

Группа сообщества W3C «GPU для Интернета» была запущена 16 февраля 2017 года. В то время все компании Apple, Google и Mozilla проводили эксперименты в этой области, но только предложение Apple было официально представлено в репозиторий «gpuweb-предложений»[10][11][12]. Вскоре после этого, 21 марта 2017 года, Mozilla представила предложение по WebGL Next в репозитории Khronos, основанное на дизайне Vulkan[13][14].

1 июня 2018 года команда Google Chrome объявила о намерении внедрить будущий стандарт WebGPU, сославшись на «решение наиболее важных проблем» в рамках кросс-браузерной стандартизации[2].

Технология

WebGPU использует собственный язык шейдеров под названием WGSL, который легко переводится на SPIR-V[15]. Этот выбор является компромиссом между тремя предложениями: текстовый WebMetal от Apple, текстовый Web HLSL / WSL от Apple Safari и двоичный SPIR-V от Mozilla. Tint — это компилятор для WGSL, созданный Google.

Реализация

И Chrome, и Firefox поддерживают WebGPU с помощью SPIR-V, при этом продолжается работа над интерфейсом WGSL. Safari поддерживает WebGPU с WSL[16].

См. также

Заметки

  1. "[...] WebGPUDevice will require the native platform to expose a modern graphics API: [...]"[2]

Примечания

  1. GPU for the Web Community Group. w3.org. Дата обращения: 11 сентября 2018. Архивировано 10 сентября 2018 года.
  2. Origin Trials. developer.chrome.com. Дата обращения: 26 сентября 2021. Архивировано 23 сентября 2021 года.
  3. Wallez, Corentin Explicit web graphics API. Дата обращения: 25 июня 2019.
  4. Wallez, Corentin; Ninomiya, Kai WebGL Next investigations. Дата обращения: 25 июня 2019.
  5. Next-generation 3D Graphics on the Web, WebKit (7 февраля 2017). Архивировано 19 декабря 2021 года. Дата обращения 24 декабря 2021.
  6. Apple seeks to position Metal as part of new 3D graphics standard for web (англ.) ?. AppleInsider. Дата обращения: 13 августа 2018. Архивировано 13 августа 2018 года.
  7. Claburn, Thomas Web-standards-allergic Apple unveils WebGPU, a web graphics standard (8 февраля 2017). Дата обращения: 14 августа 2017. Архивировано 14 августа 2017 года.
  8. WebGPU Prototype and Demos. WebKit (5 апреля 2017). Дата обращения: 10 января 2019. Архивировано 10 января 2019 года.
  9. Jackson, Dean Welcome and Getting Started. Список рассылки (16 февраля 2017). Дата обращения: 24 декабря 2021.
  10. Jackson, Dean Add Apple's WebGPU proposal. Дата обращения: 8 марта 2019. Архивировано 24 декабря 2021 года.
  11. Malyshau, Dzmitry Prototyping a new 3D API for the Web. Дата обращения: 16 декабря 2016. Архивировано 11 февраля 2017 года.
  12. Malyshau, Dzmitry. Defining the Web platform (21 марта 2017). Архивировано 10 октября 2020 года. Дата обращения 24 декабря 2021.
  13. Malyshau, Dzmitry Mozilla's contribution: Obsidian API. Дата обращения: 8 марта 2019. Архивировано 30 апреля 2020 года.
  14. WebGPU Shading Language specification. Дата обращения: 24 декабря 2021. Архивировано 8 сентября 2021 года.
  15. Implementation Status (англ.). GitHub. gpuweb. Дата обращения: 24 декабря 2021. Архивировано 24 декабря 2021 года.

Ссылки