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]
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.
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]
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.
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]