Направо към съдържанието

WebGPU

от Уикипедия, свободната енциклопедия

WebGPU е API на JavaScript, предоставен от уеб браузър, който позволява на скриптове на уеб страници да използват ефективно графичния процесор (GPU) на устройството. Това се постига с базовите системни API на Vulkan, Metal или Direct3D 12. На съответните устройства WebGPU е предназначен да замени по-стария стандарт WebGL. [1]

Google Chrome активира първоначална поддръжка на WebGPU през април 2023 г. [1]Safari и Firefox все още не са активирали своите. [2] Така стандартът W3C е във фаза на работен проект.

WebGPU позволява 3D графики в рамките на изобразявания HTML. Има и стабилна поддръжка за GPU изчисления с общо предназначение. [3]

WebGPU използва свой собствен език за шейдъри, наречен WGSL, който е проектиран да бъде директно преведен на SPIR-V, впоследствие пренасочен към по-традиционен дизайн, подобен на други езици за шейдъри. Синтаксисът е подобен на Rust. [4] Tint е компилатор за WGSL създаден от Google. [5] Naga е подобен проект, разработен за нуждите на wgpu. [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 показа презентация „Explicit web graphics API“ на работната група на WebGL (по време на среща провеждана на всеки две години). [8] Презентацията показва основните идеи и принципи за изграждане на нов API „WebGL Next“, който в крайна сметка да замени WebGL.

На 24 януари 2017 г. Khronos беше домакин на среща, посветена на обсъждането на идеите „WebGL Next“, която съвпадна по време със срещата на работната група на WebGL във Ванкувър. [9] Екипът на Google представи прототипа на NXT, внедряващ нов API, който може да работи в Chromium с OpenGL или самостоятелно с OpenGL и Metal. NXT заимства концепции от всички собствени API на Vulkan, Direct3D 12 и Metal. Представителите на Apple и Mozilla също показаха своите прототипи, изградени съответно на Safari и Servo, като и двата копират точно API на Metal.

На 7 февруари 2017 г. екипът на WebKit на Apple предложи създаването на общностна група W3C за проектиране на API. В същото време те обявиха техническо доказателство за концепция и предложение под името "WebGPU", базирано на концепции в Metal на Apple. [10] [11] [12] Името WebGPU по-късно беше прието от групата на общността като работно име за бъдещия стандарт, а не просто първоначалното предложение на Apple. Първоначалното предложение е преименувано на "WebMetal", за да се избегне допълнително объркване. [13]

Групата на общността на W3C „GPU for the Web“ стартира на 16 февруари 2017 г. По това време всички Apple, Google и Mozilla имаха експерименти в тази област, но само предложението на Apple беше официално представено в хранилището на „gpuweb-proposals“. [14] [15] Малко след това, на 21 март 2017 г., Mozilla представи предложение за WebGL Next в хранилището на Khronos, базирано на дизайна на Vulkan. [16] [17]

На 1 юни 2018 г., екипът Chrome на Google обяви намерението си да внедри бъдещия стандарт WebGPU.

  1. а б в François Beaufort, Corentin Wallez. Chrome ships WebGPU // Chrome Developers. 2023-04-06. Посетен на 2024-07-28. (на английски)
  2. а б в WebGPU Implementation Status // GitHub. Посетен на 2024-07-28. (на английски)
  3. WebGPU API // developer.mozilla.org. Посетен на 17 March 2024.
  4. WebGPU Shading Language specification
  5. Tint source code
  6. Naga source code
  7. [1] Rust Graphics Mages.
  8. Wallez, Corentin. Explicit web graphics API // Посетен на 2019-06-25.
  9. Wallez, Corentin. WebGL Next investigations // Посетен на 2019-06-25.
  10. Next-generation 3D Graphics on the Web // WebKit. 2017-02-07. Посетен на 2018-08-13.
  11. Apple seeks to position Metal as part of new 3D graphics standard for web // AppleInsider. Посетен на 2018-08-13. (на американски английски)
  12. Claburn, Thomas. Web-standards-allergic Apple unveils WebGPU, a web graphics standard // The Register. Посетен на 2017-08-14.
  13. WebGPU Prototype and Demos // WebKit. Посетен на 2019-01-10.
  14. Jackson, Dean. Add Apple's WebGPU proposal // GitHub. Посетен на 2019-03-08.
  15. Malyshau, Dzmitry. Prototyping a new 3D API for the Web // Посетен на 2016-12-16.
  16. Malyshau, Dzmitry. Defining the Web platform // 2017-03-21. Посетен на 2018-09-11.
  17. Malyshau, Dzmitry. Mozilla's contribution: Obsidian API // GitHub. Посетен на 2019-03-08.