Веб-графический процессор
Год начался | 18 мая 2021 г. |
---|---|
Впервые опубликовано | 18 мая 2021 г. |
Последняя версия | Рабочий проект W3C (По состоянию на 2023 г.) |
Организация | W3C |
комитет |
|
Редакторы |
|
Сопутствующие стандарты | |
Домен | |
Веб-сайт | www |
WebGPU — это JavaScript, API предоставляемый веб-браузером , который позволяет сценариям веб-страниц (GPU) устройства эффективно использовать графический процессор . Это достигается с помощью базовых системных API Vulkan , Metal или Direct3D 12 . На соответствующих устройствах WebGPU призван заменить старый стандарт WebGL . [ 1 ]
Google Chrome включил первоначальную поддержку WebGPU в апреле 2023 года. [ 1 ] [ 2 ] Safari и Firefox еще не включили свою функцию. [ 2 ] Таким образом, стандарт W3C находится на стадии рабочего проекта.
Технология
[ редактировать ]WebGPU позволяет создавать 3D-графику на HTML холсте . Он также имеет надежную поддержку вычислений общего назначения на графическом процессоре . [ 3 ]
WebGPU использует свой собственный язык шейдеров под названием WGSL , который был разработан с учетом возможности простого перевода на SPIR-V , пока жалобы не привели к перенаправлению на более традиционный дизайн, аналогичный другим языкам шейдеров. Синтаксис аналогичен Rust . [ 4 ] Tint — это Google созданный компилятор для WGSL. [ 5 ] Naga — аналогичный проект, разработанный для нужд РГПУ-РС. [ 6 ]
Реализации
[ редактировать ]И Google Chrome , и Firefox поддерживают WebGPU со SPIR-V, и работа над интерфейсом WGSL продолжается. Firefox и Deno используют библиотеку Rust wgpu. [ 7 ] Safari соответствует исходным спецификациям WebGPU и WGSL. [ 2 ]
Chrome версии 113 включил первоначальную поддержку WebGPU на Windows устройствах с Direct3D 12 , ChromeOS устройствах с Vulkan и macOS . [ 1 ] Эта поддержка Android была включена в версии 121. [ 2 ]
История
[ редактировать ]8 июня 2016 года Google продемонстрировал презентацию «API явной веб-графики» рабочей группе WebGL (во время личной встречи, проводимой раз в два года). [ 8 ] В презентации были рассмотрены основные идеи и принципы создания нового API, который в конечном итоге заменит WebGL, также известный как «WebGL Next».
24 января 2017 года компания Khronos провела встречу без IP, посвященную обсуждению идей «WebGL Next», совпавшую со встречей рабочей группы WebGL в Ванкувере. [ 9 ] Команда Google представила прототип NXT, реализующий новый API, который может работать в Chromium с OpenGL или автономно с OpenGL и Metal. NXT заимствовал концепции из всех собственных API Vulkan, Direct3D 12 и Metal. Представители Apple и Mozilla также продемонстрировали свои прототипы, построенные на Safari и Servo соответственно, оба из которых точно копировали Metal API.
7 февраля 2017 года команда Apple WebKit предложила создать группу сообщества W3C для разработки API. В то же время они объявили о техническом доказательстве концепции и предложении под названием «WebGPU», основанный на концепциях Apple Metal . [ 10 ] [ 11 ] [ 12 ] Название WebGPU позже было принято группой сообщества в качестве рабочего названия будущего стандарта, а не просто как первоначальное предложение Apple. [ 13 ] Первоначальное предложение было переименовано в «WebMetal», чтобы избежать дальнейшей путаницы. [ 14 ]
Группа сообщества W3C «GPU for the Web» была запущена 16 февраля 2017 года. В это время все компании Apple, Google и Mozilla проводили эксперименты в этой области, но официально в «gpuweb-proposals» было представлено только предложение Apple. хранилище. [ 15 ] [ 16 ] [ 17 ] Вскоре после этого, 21 марта 2017 года, Mozilla представила в репозитории Khronos предложение по WebGL Next, основанное на дизайне Vulkan. [ 18 ] [ 19 ]
1 июня 2018 года, ссылаясь на «решение наиболее важных вопросов» в рамках усилий по кроссбраузерной стандартизации, команда Google Chrome объявила о намерении внедрить будущий стандарт WebGPU. [ 13 ]
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «Chrome поставляет WebGPU» . Разработчики Chrome . Проверено 8 апреля 2023 г.
- ^ Перейти обратно: а б с д «Состояние реализации WebGPU» . Гитхаб . Проверено 14 марта 2024 г.
- ^ «API WebGPU» . http://developer.mozilla.org . Проверено 17 марта 2024 г.
- ^ Спецификация языка шейдеров WebGPU
- ^ Исходный код оттенка
- ^ Исходный код Наги
- ^ wgpu , Rust Graphics Mages, 03 января 2024 г. , получено 3 января 2024 г.
- ^ Валлес, Корантен. «Явный API веб-графики» . Проверено 25 июня 2019 г.
- ^ Валлес, Корентен; Ниномия, Кай. «Следующие расследования WebGL» . Проверено 25 июня 2019 г.
- ^ «3D-графика нового поколения в Интернете» . Вебкит . 07.02.2017 . Проверено 13 августа 2018 г.
- ^ «Apple стремится позиционировать Metal как часть нового стандарта 3D-графики для Интернета» . AppleInsider . Проверено 13 августа 2018 г.
- ^ Клэберн, Томас (08 февраля 2017 г.). «Apple, испытывающая аллергию на веб-стандарты, представляет WebGPU, стандарт веб-графики» . Регистр . Проверено 14 августа 2017 г.
- ^ Перейти обратно: а б Валлес, Корентен (31 мая 2018 г.). «Намерение реализовать: WebGPU» . блинк-дев (список рассылки) . Проверено 13 августа 2018 г.
- ^ «Прототип и демонстрации WebGPU» . Вебкит . 05.04.2017 . Проверено 10 января 2019 г.
- ^ Джексон, Дин (16 февраля 2017 г.). «Добро пожаловать и начинаем» . public-gpu (список рассылки) . Проверено 11 сентября 2018 г.
- ^ Джексон, Дин. «Добавьте предложение Apple по WebGPU» . Гитхаб . Проверено 08 марта 2019 г.
- ^ Малышев Дмитрий. «Прототипирование нового 3D API для Интернета» . Проверено 16 декабря 2016 г.
- ^ Малышев, Дмитрий (21 марта 2017 г.). «Определение веб-платформы» . Проверено 11 сентября 2018 г.
- ^ Малышев Дмитрий. «Вклад Mozilla: Obsidian API» . Гитхаб . Проверено 08 марта 2019 г.