Chrome 113 aktiverer WebGPU, en moderne grafik-API med lav overhead til nettet.

Chrome 113 aktiverer WebGPU, en moderne grafik-API med lav overhead til nettet.

Google meddelte i dag, at det vil aktivere WebGPU-understøttelse i sin standard Chrome-browser startende med version 113, som i øjeblikket er i beta. WebGPU, som er under udvikling siden 2017, er en næste generations grafik-API, der har til formål at drage fordel af lave overhead-API’er såsom Microsoft Direct3D 12, Apple Metal og Vulkan i webbrowsere og andre applikationer.

WebGPU-understøttelse har været tilgængelig i nogen tid, men er som standard deaktiveret i Chrome, fordi API’en ikke er færdiggjort, og tingene kan gå fra opdatering til opdatering. Google siger, at både Mozilla og Apple med tiden vil understøtte WebGPU i Firefox og Safari, og browsere som Microsoft Edge og Opera, der er afhængige af Chromium-browsermotoren, kunne tænkes at aktivere det, som Google gjorde.

Chrome 113 understøtter WebGPU på Windows, macOS og ChromeOS til at begynde med, mens “understøttelse af andre platforme” som Linux og Android “kommer senere i år.” Denne version af browseren skulle blive tilgængelig for alle Chrome-brugere engang i maj.

Support i Chrome er et stort skridt fremad for enhver ny standard, uanset om det er en ny eller opdateret API, billedformat eller video-codec. Ifølge StatCounter tegner Chrome sig selv for omkring to tredjedele af browserens markedsandel på verdensplan og næsten 80 procent af den samlede browsermarkedsandel, hvis man tæller andre Chromium-baserede browsere med. Når Safari og Firefox tilføjer support, vil stort set alle webbrowsere rundt om i verden kunne køre WebGPU-kode, så det er værd at kort forklare, hvad WebGPU er, og hvorfor det eksisterer.

Hvad er Web GPU?

WebGPU er en slags efterfølger til WebGL , en meget ældre API, der giver dig mulighed for at vise OpenGL-baseret grafik i din browser uden at kræve yderligere tredjeparts plugins som Adobe Flash. Selvom WebGL var revolutionerende, da det blev annonceret i 2009, lider det i dag af mange af de samme problemer som OpenGL: det udnytter ikke moderne GPU’er fuldt ud, det kan miste ydeevne på grund af overhead til driveren, og det har kun begrænsede muligheder. og klodset understøttelse af GPU-beregningsbelastninger.

“Mens WebGL primært er designet til at tegne billeder, men kan genbruges (med større indsats) til at udføre andre former for beregninger, har WebGPU førsteklasses support til at udføre generel beregning på GPU’en,” står der i et udkast til dokument, der forklarer, hvorfor der er WebGPU . Den nye API vil forbedre grafikken i miljøer som Babylon.js og spilmotorer som Unity; vil understøtte GPU-accelererede arbejdsbelastninger som dem, der bruges til maskinlæring og kunstig intelligens; og kan gøre det nemmere for foto- og videowebapps (blandt andre) at drage fordel af den GPU-acceleration, som native apps nyder godt af.

WebGPU udvikles af en arbejdsgruppe, der omfatter repræsentanter fra Google, Microsoft, Apple, Mozilla, Intel og mange andre virksomheder, og som et resultat er API’en designet til at være så bredt kompatibel som muligt. WebGPU er ikke en direkte implementering af nogen eksisterende grafik-API, men er en indbygget API, der sidder oven på og interagerer med Direct3D 12, Metal og Vulkan. Denne forklaring fra Surma, en Shopify-ingeniør og tidligere Google-medarbejder, opsummerer det fint (vores fremhævelse):

“Mens WebGL blot er en tynd indpakning omkring OpenGL, har WebGPU taget en anden tilgang. Det introducerer sine egne abstraktioner og afspejler ikke direkte nogen af ​​disse native API’er. Dette skyldes dels, at ingen enkelt API er tilgængelig på alle systemer, men også fordi mange koncepter (såsom ekstremt lavt hukommelsesstyring) ikke er idiomatiske for Web API. I stedet blev WebGPU’en designet til at føles “webagtig” og bekvemt sidde oven på en hvilken som helst af de native grafik-API’er, og abstrahere deres idiosynkrasier. Det er standardiseret i W3C, og alle de store browserleverandører sidder rundt om bordet.”

Dette har den fordel, at WebGPU-kode bliver meget bærbar – skriv WebGPU-kode, og så længe brugerne har hardware og en browser, der understøtter det, bør du få samme resultat på et Windows-system med Direct3D og på en Android-telefon med Vulkan. Og det undgår nogle af de hacks, der holder WebGL i gang – for eksempel bruger WebGL på Windows og macOS ikke engang OpenGL direkte, men bruger i stedet en oversætter kaldet ANGLE, som i stedet forvandler OpenGL API-kald til Direct3D og Metal API-kald . Med WebGPU er der ingen grund til at starte et helt separat projekt for at skrive en langsom eller dårligt vedligeholdt implementering af OpenGL.

WebGPU har også sit eget shader-sprog (WGSL), som Chrome-teamet stadig arbejder på at understøtte – dagens meddelelse siger, at Google “planlægger at give dybere adgang til shader-kerner” via WGSL i en fremtidig udgivelse. Ligesom resten af ​​WebGPU API er WGSL platformuafhængig og kan nemt oversættes til det foretrukne shader-sprog, uanset hvilket operativsystem du bruger det på.

Endelig, på trods af ordet “netværk” i navnet, er WebGPU API ikke begrænset til browsere. wgpu-projektet er Rusts version af WebGPU, der giver dig mulighed for at skrive WebGPU-applikationer og køre dem uden for webbrowsere.

Hvis du vil eksperimentere med WebGPU nu, er Chrome 113 beta tilgængelig her . Et GitHub-lager med kodeeksempler er tilgængeligt her , og der er officiel dokumentation for både WebGPU og WGSL .

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *