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 (упомянутых выше).[прим 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. Ninomiya, Kai; Wallez, Corentin. 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 (16 февраля 2017). Welcome and Getting Started. public-gpu (Mailing list). Архивировано 24 декабря 2021. Дата обращения: 11 сентября 2018.
  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 (21 марта 2017). Defining the Web platform. Архивировано 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 года.

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.