Chrome 113 activeert WebGPU, een moderne, low-overhead grafische API voor het web.
Google heeft vandaag aangekondigd dat het WebGPU-ondersteuning zal inschakelen in zijn standaard Chrome-browser vanaf versie 113, die momenteel in bèta is. WebGPU, in ontwikkeling sinds 2017, is een grafische API van de volgende generatie die tot doel heeft te profiteren van API’s met een lage overhead, zoals Microsoft Direct3D 12, Apple Metal en Vulkan in webbrowsers en andere toepassingen.
WebGPU-ondersteuning is al enige tijd beschikbaar, maar is standaard uitgeschakeld in Chrome omdat de API nog niet is voltooid en er dingen kunnen mislukken van update tot update. Google zegt dat zowel Mozilla als Apple uiteindelijk WebGPU in Firefox en Safari zullen ondersteunen, en browsers zoals Microsoft Edge en Opera die afhankelijk zijn van de Chromium-browser-engine zouden dit mogelijk kunnen inschakelen, zoals Google deed.
Chrome 113 ondersteunt WebGPU op Windows, macOS en ChromeOS om mee te beginnen, terwijl “ondersteuning voor andere platforms” zoals Linux en Android “later dit jaar komt”. Deze versie van de browser zou ergens in mei beschikbaar moeten zijn voor alle Chrome-gebruikers.
Ondersteuning in Chrome is een grote stap voorwaarts voor elke nieuwe standaard, of het nu gaat om een nieuwe of bijgewerkte API, afbeeldingsindeling of videocodec. Volgens StatCounter is Chrome zelf goed voor ongeveer tweederde van het browsermarktaandeel wereldwijd, en bijna 80 procent van het totale browsermarktaandeel als je andere op Chromium gebaseerde browsers meetelt. Zodra Safari en Firefox ondersteuning hebben toegevoegd, kunnen vrijwel alle webbrowsers over de hele wereld WebGPU-code uitvoeren, dus het is de moeite waard om kort uit te leggen wat WebGPU is en waarom het bestaat.
Wat is Web-GPU?
WebGPU is een soort opvolger van WebGL , een veel oudere API waarmee je op OpenGL gebaseerde afbeeldingen in je browser kunt weergeven zonder dat je extra plug-ins van derden zoals Adobe Flash nodig hebt. Hoewel WebGL revolutionair was toen het in 2009 werd aangekondigd, kampt het vandaag de dag met veel van dezelfde problemen als OpenGL: het maakt niet ten volle gebruik van moderne GPU’s, het kan prestaties verliezen door overhead van de driver en het heeft slechts beperkte mogelijkheden. en onhandige ondersteuning voor GPU-rekenbelastingen.
“Hoewel WebGL in de eerste plaats is ontworpen voor het tekenen van afbeeldingen, maar kan worden hergebruikt (met meer moeite) om andere soorten berekeningen uit te voeren, biedt WebGPU eersteklas ondersteuning voor het uitvoeren van algemene berekeningen op de GPU”, leest een conceptdocument waarin wordt uitgelegd waarom er WebGPU is . De nieuwe API zal de graphics verbeteren in omgevingen zoals Babylon.js en game-engines zoals Unity; ondersteunt GPU-versnelde workloads zoals die worden gebruikt voor machine learning en kunstmatige intelligentie; en kan het (onder andere) voor foto- en videoweb-apps gemakkelijker maken om te profiteren van de GPU-versnelling waarvan native apps profiteren.
WebGPU wordt ontwikkeld door een werkgroep met vertegenwoordigers van Google, Microsoft, Apple, Mozilla, Intel en vele andere bedrijven, en als gevolg daarvan is de API ontworpen om zo breed mogelijk compatibel te zijn. WebGPU is geen directe implementatie van een bestaande grafische API, maar is een native API die bovenop Direct3D 12, Metal en Vulkan zit en ermee communiceert. Deze uitleg van Surma, een Shopify-engineer en voormalig Google-medewerker, vat het mooi samen (onze nadruk):
“Hoewel WebGL slechts een dun omhulsel is rond OpenGL, heeft WebGPU een andere aanpak gekozen. Het introduceert zijn eigen abstracties en weerspiegelt niet direct een van deze native API’s. Dit komt deels omdat geen enkele API op alle systemen beschikbaar is, maar ook omdat veel concepten (zoals extreem low-level geheugenbeheer) niet idiomatisch zijn voor Web API. In plaats daarvan is de WebGPU ontworpen om “webachtig” aan te voelen en handig bovenop een van de native grafische API’s te zitten, waardoor hun eigenaardigheden worden weggenomen. Het is gestandaardiseerd in het W3C en alle grote browserleveranciers zitten rond de tafel.”
Dit heeft het voordeel dat WebGPU-code zeer draagbaar wordt – schrijf WebGPU-code en zolang gebruikers hardware en een browser hebben die dit ondersteunt, zou u hetzelfde resultaat moeten krijgen op een Windows-systeem met Direct3D en op een Android-telefoon met Vulkan. En het vermijdt enkele van de hacks die ervoor zorgen dat WebGL blijft werken – WebGL op Windows en macOS gebruikt bijvoorbeeld niet eens rechtstreeks OpenGL, maar gebruikt in plaats daarvan een vertaler genaamd ANGLE, die OpenGL API-oproepen omzet in Direct3D- en Metal API-oproepen . Met WebGPU is het niet nodig om een volledig apart project te starten om een langzame of slecht onderhouden implementatie van OpenGL te schrijven.
WebGPU heeft ook zijn eigen shader-taal (WGSL), die het Chrome-team nog steeds ondersteunt – de aankondiging van vandaag zegt dat Google “van plan is diepere toegang tot shader-cores te bieden” via WGSL in een toekomstige release. Net als de rest van de WebGPU API, is WGSL platformonafhankelijk en kan het eenvoudig worden vertaald naar de gewenste shader-taal van welk besturingssysteem u het ook gebruikt.
Tot slot, ondanks het woord “netwerk” in de naam, is de WebGPU API niet beperkt tot browsers. Het wgpu-project is Rust’s versie van WebGPU waarmee je WebGPU-applicaties kunt schrijven en deze buiten webbrowsers kunt uitvoeren.
Als je nu met WebGPU wilt experimenteren, is Chrome 113 beta hier beschikbaar . Een GitHub-repository met codevoorbeelden is hier beschikbaar en er is officiële documentatie voor zowel WebGPU als WGSL .
Geef een reactie