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