WebGPU

WebGPU  este numele de lucru pentru viitorul standard web și JavaScript API pentru grafică și computere accelerate de hardware , având ca scop să ofere „cele mai recente capacități de grafică 3D și de calcul”. Dezvoltat de GPU W3C pentru web de o echipă de ingineri de la Apple , Mozilla , Microsoft , Google și alții. [unu]

Spre deosebire de WebGL , WebGPU nu este un port direct al niciunui API nativ existent. Se bazează pe API-uri furnizate de Vulkan , Metal și Direct3D 12 și este conceput pentru a oferi performanțe ridicate pe platformele mobile și desktop. [2] Platformele mobile vor fi limitate în crearea de obiecte WebGPUDevicecare necesită API-uri grafice moderne (menționate mai sus). [nota 1]

Primul prototip de concept numit NXT a fost demonstrat la începutul anului 2017 de echipa Chromium .

Echipa de dezvoltare Google Chrome l-a numit „succesorul” API-urilor JavaScript WebGL /2 . [3]

Istorie

Pe 8 iunie 2016, Google a prezentat grupului de lucru WebGL prezentarea „Explicit web graphics API” (în timpul unei întâlniri bianuale față în față). [4] Prezentarea a acoperit ideile și principiile de bază din spatele creării unui nou API care va înlocui în cele din urmă WebGL, cunoscut și sub numele de „WebGL Next”.

Pe 24 ianuarie 2017, Khronos a găzduit o întâlnire „WebGL Next Ideas” care coincide cu întâlnirea Grupului de lucru WebGL din Vancouver. [5] Echipa Google a dezvăluit un prototip NXT care implementează un nou API care poate rula în Chromium cu OpenGL sau independent cu OpenGL și Metal. NXT a împrumutat concepte de la toate API-urile Vulkan, Direct3D 12 și Metal. Reprezentanții Apple și Mozilla și-au arătat și prototipurile, construite pe Safari și respectiv Servo, ambele copiand complet API-ul Metal.

Grupul de lucru W3C

Pe 7 februarie 2017, echipa Apple WebKit a propus crearea unui grup comunitar W3C pentru a dezvolta API-ul. În același timp, au anunțat o dovadă tehnică a conceptului și o propunere numită „WebGPU” bazată pe conceptele Apple Metal . [6] [7] [8] Numele WebGPU a fost adoptat ulterior de grupul comunității ca nume de lucru pentru un viitor standard, mai degrabă decât doar propunerea inițială a Apple. [2] Propunerea inițială a fost redenumită „WebMetal” pentru a evita confuzii suplimentare. [9]

Grupul comunitar W3C „GPU-uri pentru web” a fost lansat pe 16 februarie 2017. La acea vreme, toate Apple, Google și Mozilla făceau experimente în acest domeniu, dar numai propunerea Apple a fost înaintată oficial în depozitul „gpuweb-offers”. [10] [11] [12] La scurt timp după aceea, pe 21 martie 2017, Mozilla a trimis o propunere WebGL Next depozitului Khronos bazată pe designul Vulkan. [13] [14]

La 1 iunie 2018, echipa Google Chrome și-a anunțat intenția de a implementa un viitor standard WebGPU, invocând „rezolvarea celor mai importante probleme” ca parte a standardizării între browsere. [2]

Tehnologie

WebGPU folosește propriul său limbaj shader numit WGSL, care se traduce cu ușurință în SPIR-V . [15] Această alegere este un compromis între trei oferte: WebMetal bazat pe text de la Apple, Web HLSL /WSL bazat pe text Apple Safari și SPIR-V binar de la Mozilla. Tint este un compilator WGSL creat de Google.

Implementare

Atât Chrome, cât și Firefox acceptă WebGPU prin SPIR-V, în timp ce se lucrează la interfața WGSL. Safari acceptă WebGPU cu WSL. [16]

Vezi și

Note

  1. „[...] WebGPUDevice va solicita platformei native să expună un API grafic modern: [...]” [2]

Note

  1. GPU pentru Web Community Group . w3.org . Preluat la 11 septembrie 2018. Arhivat din original la 10 septembrie 2018.
  2. Încercări de origine . developer.chrome.com _ Preluat la 26 septembrie 2021. Arhivat din original la 23 septembrie 2021.
  3. Wallez, Corentin Explicit web graphics API . Data accesului: 25 iunie 2019.
  4. Wallez, Corentin; Ninomiya, Kai WebGL Următoarele investigații . Data accesului: 25 iunie 2019.
  5. Grafică 3D de generație următoare pe web , WebKit  (7 februarie 2017). Arhivat din original pe 19 decembrie 2021. Preluat la 24 decembrie 2021.
  6. Apple încearcă să poziționeze Metal ca parte a noului standard de grafică 3D pentru   web ? . AppleInsider . Preluat la 13 august 2018. Arhivat din original la 13 august 2018.
  7. Claburn, Thomas Web-standards-alergic Apple dezvăluie WebGPU, un standard de grafică web (8 februarie 2017). Preluat la 14 august 2017. Arhivat din original la 14 august 2017.
  8. Prototip WebGPU și demonstrații . WebKit (5 aprilie 2017). Consultat la 10 ianuarie 2019. Arhivat din original pe 10 ianuarie 2019.
  9. Jackson, Dean Bun venit și noțiuni introductive . Lista de corespondență (16 februarie 2017). Data accesului: 24 decembrie 2021.
  10. Jackson, Dean Adaugă propunerea Apple WebGPU . Preluat la 8 martie 2019. Arhivat din original la 24 decembrie 2021.
  11. Malyshau, Dzmitry Prototiparea unui nou API 3D pentru web . Preluat la 16 decembrie 2016. Arhivat din original la 11 februarie 2017.
  12. Malyshau, Dmitry . Definirea platformei Web  (21 martie 2017). Arhivat 10 octombrie 2020. Preluat la 24 decembrie 2021.
  13. Malyshau, contribuția lui Dzmitry Mozilla: Obsidian API . Preluat la 8 martie 2019. Arhivat din original la 30 aprilie 2020.
  14. Specificația limbajului de umbrire WebGPU . Preluat la 24 decembrie 2021. Arhivat din original la 8 septembrie 2021.
  15. Starea  implementării . GitHub . gpuweb. Preluat la 24 decembrie 2021. Arhivat din original la 24 decembrie 2021.

Link -uri