Chrome 113 attiva WebGPU, un’API grafica moderna ea basso costo per il Web.
Google ha annunciato oggi che abiliterà il supporto WebGPU nel suo browser Chrome predefinito a partire dalla versione 113, attualmente in versione beta. WebGPU, in sviluppo dal 2017, è un’API grafica di nuova generazione che mira a sfruttare API a basso sovraccarico come Microsoft Direct3D 12, Apple Metal e Vulkan nei browser Web e in altre applicazioni.
Il supporto WebGPU è disponibile da tempo, ma è disabilitato per impostazione predefinita in Chrome perché l’API non è stata finalizzata e le cose potrebbero interrompersi da un aggiornamento all’altro. Google afferma che sia Mozilla che Apple alla fine supporteranno WebGPU in Firefox e Safari, e browser come Microsoft Edge e Opera che si basano sul motore del browser Chromium potrebbero plausibilmente abilitarlo, come ha fatto Google.
Chrome 113 supporta WebGPU su Windows, macOS e ChromeOS per cominciare, mentre “il supporto per altre piattaforme” come Linux e Android “arriverà entro la fine dell’anno”. Questa versione del browser dovrebbe essere disponibile per tutti gli utenti di Chrome a maggio.
Il supporto in Chrome è un grande passo avanti per qualsiasi nuovo standard, sia che si tratti di un’API nuova o aggiornata, di un formato immagine o di un codec video. Secondo StatCounter, Chrome stesso rappresenta circa i due terzi della quota di mercato dei browser in tutto il mondo e quasi l’80% della quota di mercato totale dei browser se si contano altri browser basati su Chromium. Una volta che Safari e Firefox aggiungeranno il supporto, praticamente tutti i browser Web in tutto il mondo saranno in grado di eseguire il codice WebGPU, quindi vale la pena spiegare brevemente cos’è WebGPU e perché esiste.
Che cos’è la Web GPU?
WebGPU è una sorta di successore di WebGL , un’API molto più vecchia che ti consente di visualizzare la grafica basata su OpenGL nel tuo browser senza richiedere plug-in aggiuntivi di terze parti come Adobe Flash. Mentre WebGL era rivoluzionario quando è stato annunciato nel 2009, oggi soffre di molti degli stessi problemi di OpenGL: non sfrutta appieno le moderne GPU, può perdere prestazioni a causa del sovraccarico del driver e ha solo opportunità limitate. e supporto goffo per i carichi di calcolo della GPU.
“Mentre WebGL è progettato principalmente per disegnare immagini, ma può essere riproposto (con uno sforzo maggiore) per eseguire altri tipi di calcolo, WebGPU ha un supporto di prim’ordine per eseguire calcoli generali sulla GPU”, si legge in una bozza di documento che spiega perché esiste WebGPU . La nuova API migliorerà la grafica in ambienti come Babylon.js e motori di gioco come Unity; supporterà carichi di lavoro accelerati da GPU come quelli utilizzati per l’apprendimento automatico e l’intelligenza artificiale; e può rendere più facile per le app web di foto e video (tra le altre) sfruttare l’accelerazione GPU di cui beneficiano le app native.
WebGPU è stato sviluppato da un gruppo di lavoro che include rappresentanti di Google, Microsoft, Apple, Mozilla, Intel e molte altre società e, di conseguenza, l’API è stata progettata per essere il più ampiamente compatibile possibile. WebGPU non è un’implementazione diretta di alcuna API grafica esistente, ma è un’API nativa che si trova sopra e interagisce con Direct3D 12, Metal e Vulkan. Questo spiegatore di Surma, un ingegnere di Shopify ed ex dipendente di Google, lo riassume bene (la nostra enfasi):
“Mentre WebGL è solo un sottile involucro attorno a OpenGL, WebGPU ha adottato un approccio diverso. Introduce le proprie astrazioni e non riflette direttamente nessuna di queste API native. Ciò è in parte dovuto al fatto che nessuna singola API è disponibile su tutti i sistemi, ma anche perché molti concetti (come la gestione della memoria di livello estremamente basso) non sono idiomatici per l’API Web. Invece, la WebGPU è stata progettata per sembrare “weblike” e sedersi comodamente sopra qualsiasi API grafica nativa, astraendo le loro idiosincrasie. È standardizzato nel W3C e tutti i principali fornitori di browser sono seduti attorno al tavolo”.
Questo ha il vantaggio che il codice WebGPU diventa molto portabile: scrivi codice WebGPU e fintanto che gli utenti hanno hardware e un browser che lo supporta, dovresti ottenere lo stesso risultato su un sistema Windows con Direct3D e su un telefono Android con Vulkan. Ed evita alcuni degli hack che fanno funzionare WebGL, ad esempio WebGL su Windows e macOS non utilizza nemmeno OpenGL direttamente, ma utilizza invece un traduttore chiamato ANGLE, che trasforma invece le chiamate API OpenGL in chiamate API Direct3D e Metal . Con WebGPU, non è necessario avviare un progetto completamente separato per scrivere un’implementazione lenta o mal gestita di OpenGL.
WebGPU ha anche il proprio linguaggio shader (WGSL), che il team di Chrome sta ancora lavorando per supportare: l’annuncio di oggi afferma che Google “prevede di fornire un accesso più profondo ai core shader” tramite WGSL in una versione futura. Come il resto dell’API WebGPU, WGSL è indipendente dalla piattaforma e si traduce facilmente nel linguaggio shader preferito di qualsiasi sistema operativo su cui lo utilizzi.
Infine, nonostante la parola “rete” nel nome, l’API WebGPU non è limitata ai browser. Il progetto wgpu è la versione di WebGPU di Rust che ti consente di scrivere applicazioni WebGPU ed eseguirle al di fuori dei browser web.
Se vuoi sperimentare subito WebGPU, Chrome 113 beta è disponibile qui . Un repository GitHub con esempi di codice è disponibile qui e c’è la documentazione ufficiale sia per WebGPU che per WGSL .
Lascia un commento