Chrome avrà già il supporto WebGPU e sarà abilitato per impostazione predefinita

Web GPU Chrome

Dopo anni di sviluppo, il team di Chrome rilascia WebGPU

Pochi giorni fa Google ha presentato attraverso uno annunciato il supporto predefinito per l'API grafica WebGPU e linguaggio di ombreggiatura WebGPU (WGSL) nel ramo Chrome 113, la cui uscita è prevista per il 2 maggio.

Per coloro che non sono a conoscenza di WebGPU, dovresti saperlo fornisce un'API simile a Vulkan, Metal e Direct3D 12 per eseguire operazioni lato GPU come il rendering e il calcolo, e anche consente di utilizzare un linguaggio shader per scrivere programmi lato GPU.

Informazioni su WebGPU

Concettualmente, WebGPU differisce da WebGL nello stesso modo in cui l'API grafica Vulkan differisce da OpenGL, ma WebGPU non si basa su un'API grafica specifica, piuttosto è un livello generico che utilizza le stesse primitive di basso livello trovate in Vulkan. Metallo e Direct3D. Web GPU fornisce alle applicazioni JavaScript un controllo di basso livello sull'organizzazione, elaborazione e trasmissione di comandi alla GPU, gestione delle risorse associate, memoria, buffer, oggetti texture e shader grafici compilati. Questo approccio consente di ottenere applicazioni grafiche con prestazioni più elevate riducendo l'overhead e aumentando l'efficienza della GPU.

Web GPU ti permette di creare progetti 3D complessi per il web che funzionano altrettanto bene dei programmi autonomi che utilizzano direttamente Vulkan, Metal o Direct3D, ma non sono legati a piattaforme specifiche. WebGPU fornisce anche opzioni aggiuntive per il porting di programmi grafici nativi a un modulo abilitato per il Web compilando in WebAssembly. Oltre alla grafica 3D, WebGPU copre anche le possibilità associate all'offload dei calcoli sul lato GPU e all'esecuzione di shader.

Tra le caratteristiche chiave di WebGPU, possiamo evidenziare quanto segue:

  • Gestione separata delle risorse, dei lavori preparatori e della trasmissione dei comandi alla GPU (in WebGL, un oggetto era responsabile di tutto in una volta). Vengono forniti tre contesti separati: GPUDevice per la creazione di risorse come texture e buffer; GPUCommandEncoder per codificare i singoli comandi, comprese le fasi di elaborazione e calcolo; GPUCommandBuffer da passare alla coda di esecuzione della GPU.
    È possibile eseguire il rendering del risultato in un'area associata a uno o più elementi del canvas oppure eseguire il rendering senza output (ad esempio, durante l'esecuzione di attività computazionali). Lo staging semplifica la separazione delle operazioni di creazione e provisioning delle risorse in controller diversi che possono essere eseguiti su thread diversi.
  • Un approccio diverso alla gestione dello stato. WebGPU fornisce due oggetti, GPURenderPipeline e GPUComputePipeline, che consentono di combinare diversi stati predefiniti dallo sviluppatore, consentendo al browser di non sprecare risorse in lavoro aggiuntivo, come la ricompilazione degli shader. Gli stati supportati includono: shader, vertex buffer e layout di attributi, layout di gruppi fissi, fusione, profondità e pattern, formati di output post-rendering.
  • Un modello vincolante, molto simile agli strumenti di pooling delle risorse di Vulkan. Per raggruppare le risorse in gruppi, WebGPU fornisce un oggetto GPUBindGroup che può essere associato ad altri oggetti simili per l'utilizzo negli shader durante la registrazione dei comandi.
    La creazione di tali gruppi consente al controller di eseguire le azioni preparatorie necessarie in anticipo e consente al browser di cambiare le associazioni di risorse tra le chiamate draw molto più velocemente. Il layout delle associazioni di risorse può essere predefinito utilizzando l'oggetto GPUBindGroupLayout.

Oltre a Chrome, Il supporto sperimentale di WebGPU è stato testato da aprile 2020 in Firefox e da novembre 2021 su Safari. Per abilitare WebGPU in Firefox, devi impostare i flag dom.webgpu.enabled e gfx.webgpu.force-enabled in about:config.

Non ci sono ancora piani per abilitare WebGPU per impostazione predefinita in Firefox e Safari. Le implementazioni WebGPU sviluppate per Firefox e Chrome sono disponibili come librerie separate: Dawn (C++) e wgpu (Rust) che puoi utilizzare per integrare il supporto WebGPU nelle tue applicazioni.

Inoltre, è in corso il lavoro per aggiungere il supporto WebGPU alle librerie JavaScript più diffuse in modo nativo utilizzando WebGL. Ad esempio, il supporto WebGPU completo è già dichiarato in Babylon.js e parziale in Three.js , PlayCanvas e TensorFlow.js.

L'implementazione di WebGPU sarà inizialmente abilitato solo su build per ChromeOS, macOS e Windows, mentre per Linux e Android, il supporto WebGPU verrà attivato in un secondo momento.

Infine, se sei interessato a saperne di più, puoi consultare i dettagli nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.