WebGPU är arbetsnamnet för den kommande webbstandarden och JavaScript API för hårdvaruaccelererad grafik och datoranvändning , som syftar till att tillhandahålla "den senaste 3D-grafiken och beräkningsmöjligheterna". Utvecklad av W3C GPU för webben av ett team av ingenjörer från Apple , Mozilla , Microsoft , Google och mer. [ett]
Till skillnad från WebGL är WebGPU inte en direkt port för något befintligt inbyggt API. Den är baserad på API:er från Vulkan , Metal och Direct3D 12 och är designad för att ge hög prestanda över mobila och stationära plattformar. [2] Mobila plattformar kommer att vara begränsade när det gäller att skapa objekt WebGPUDevicesom kräver moderna grafiska API:er (som nämns ovan). [anteckning 1]
Den första konceptprototypen kallad NXT demonstrerades i början av 2017 av Chromium -teamet .
Google Chromes utvecklingsteam kallade det "efterträdaren" till WebGL /2 JavaScript-API :erna . [3]
Den 8 juni 2016 presenterade Google presentationen "Explicit web graphics API" för WebGL-arbetsgruppen (under ett halvårsmöte ansikte mot ansikte). [4] Presentationen täckte de grundläggande idéerna och principerna bakom skapandet av ett nytt API som så småningom kommer att ersätta WebGL, även känt som "WebGL Next".
Den 24 januari 2017 stod Khronos värd för ett "WebGL Next Ideas"-möte som sammanföll med WebGL Working Group-mötet i Vancouver. [5] Google-teamet har avslöjat en NXT-prototyp som implementerar ett nytt API som kan köras i Chromium med OpenGL eller fristående med OpenGL och Metal. NXT lånade koncept från alla Vulkan, Direct3D 12 och Metal API:er. Representanter från Apple och Mozilla visade också upp sina prototyper, byggda på Safari respektive Servo, som båda helt kopierar Metal API.
Den 7 februari 2017 föreslog Apple WebKit -teamet skapandet av en W3C-gemenskapsgrupp för att utveckla API:et. Samtidigt tillkännagav de ett tekniskt proof of concept och förslag som heter "WebGPU" baserat på Apple Metal -koncept . [6] [7] [8] Namnet WebGPU antogs senare av communitygruppen som ett arbetsnamn för en framtida standard snarare än bara Apples ursprungliga förslag. [2] Det ursprungliga förslaget har bytt namn till "WebMetal" för att undvika ytterligare förvirring. [9]
W3C Community Group "GPUs for the Web" lanserades den 16 februari 2017. Vid den tiden experimenterade alla Apple, Google och Mozilla på detta område, men bara Apples förslag skickades officiellt till "gpuweb-offers"-förrådet. [10] [11] [12] Kort därefter, den 21 mars 2017, skickade Mozilla ett WebGL Next-förslag till Khronos-förvaret baserat på Vulkan-designen. [13] [14]
Den 1 juni 2018 tillkännagav Google Chrome -teamet sin avsikt att implementera en framtida WebGPU-standard, med hänvisning till "att lösa de viktigaste problemen" som en del av standardisering över webbläsare. [2]
WebGPU använder sitt eget shader-språk som kallas WGSL, som enkelt översätts till SPIR-V . [15] Detta val är en kompromiss mellan tre erbjudanden: Apples textbaserade WebMetal, Apple Safaris textbaserade webb HLSL /WSL och Mozillas binära SPIR-V. Tint är en WGSL-kompilator skapad av Google.
Både Chrome och Firefox stöder WebGPU genom SPIR-V, medan arbetet fortsätter med WGSL-gränssnittet. Safari stöder WebGPU med WSL. [16]