Chrome kommer redan att ha WebGPU-stöd och kommer att vara aktiverat som standard

Webgpu Chrome

Efter år av utveckling släpper Chrome-teamet WebGPU

Några dagar sen Google presenteras genom en meddelad standardstödet för WebGPU grafik API och WebGPU Shading Language (WGSL) i Chrome 113-grenen, som är planerad att släppas den 2 maj.

För de som inte är medvetna om WebGPU bör du veta det tillhandahåller ett API som liknar Vulkan, Metal och Direct3D 12 för att utföra operationer på GPU-sidan som rendering och beräkning, och även tillåter användning av ett shader-språk för att skriva program på GPU-sidan.

Om WebGPU

Konceptuellt WebGPU skiljer sig från WebGL på samma sätt som Vulkan graphics API skiljer sig från OpenGL, men WebGPU är inte baserad på ett specifikt grafik-API, det är snarare ett lager för allmänna ändamål som använder samma lågnivåprimitiv som finns i Vulkan. Metal och Direct3D. WebGPU tillhandahåller JavaScript-applikationer med kontroll på låg nivå över organisationen, bearbeta och överföra kommandon till GPU:n, hantera tillhörande resurser, minne, buffertar, texturobjekt och kompilerade grafikskuggningar. Detta tillvägagångssätt gör att du kan uppnå grafikapplikationer med högre prestanda genom att minska overhead och öka GPU-effektiviteten.

WebGPU låter dig skapa komplexa 3D-projekt för webben som fungerar lika bra som fristående program som direkt använder Vulkan, Metal eller Direct3D, men som inte är knutna till specifika plattformar. WebGPU:n ger också ytterligare alternativ för portering av inbyggda grafikprogram till ett webbaktiverat formulär genom att kompilera i WebAssembly. Förutom 3D-grafik täcker WebGPU även de möjligheter som är förknippade med att ladda ner beräkningar till GPU-sidan och köra shaders.

Av de viktigaste funktionerna i WebGPU kan vi lyfta fram följande:

  • Separat hantering av resurser, förarbete och överföring av kommandon till GPU:n (i WebGL var ett objekt ansvarigt för allt på en gång). Tre separata sammanhang tillhandahålls: GPUDenhet för att skapa resurser som texturer och buffertar; GPUCommandEncoder för att koda individuella kommandon, inklusive bearbetnings- och beräkningssteg; GPUCommandBuffer för att skickas till GPU-körningskön.
    Resultatet kan renderas i ett område som är associerat med ett eller flera arbetsobjekt, eller renderas utan utdata (till exempel när beräkningsuppgifter körs). Staging gör det enkelt att separera resursskapande och provisioneringsoperationer i olika kontroller som kan köras på olika trådar.
  • Ett annat förhållningssätt till statlig hantering. WebGPU tillhandahåller två objekt, GPURenderPipeline och GPUComputePipeline, som låter dig kombinera olika tillstånd fördefinierade av utvecklaren, vilket gör det möjligt för webbläsaren att inte slösa resurser på ytterligare arbete, som att kompilera om shaders. Tillstånd som stöds inkluderar: shaders, vertexbuffert och attributlayouter, fixerade grupplayouter, blandning, djup och mönster, utdataformat efter rendering.
  • En bindande modell, ungefär som Vulkans verktyg för resurspoolning. För att gruppera resurser i grupper tillhandahåller WebGPU ett GPUBindGroup-objekt som kan bindas till andra liknande objekt för användning i shaders under kommandoinspelning.
    Genom att skapa sådana grupper kan styrenheten utföra nödvändiga förberedande åtgärder i förväg och gör det möjligt för webbläsaren att byta resursbindningar mellan ritanrop mycket snabbare. Layouten för resursbindningar kan fördefinieras med GPUBindGroupLayout-objektet.

Förutom Chrome, experimentellt WebGPU-stöd har testats sedan april 2020 i Firefox och från november 2021 på Safari. För att aktivera WebGPU i Firefox måste du ställa in flaggorna dom.webgpu.enabled och gfx.webgpu.force-enabled i about:config.

Det finns ännu inga planer på att aktivera WebGPU som standard i Firefox och Safari. WebGPU-implementationer utvecklade för Firefox och Chrome finns tillgängliga som separata bibliotek: Dawn (C++) och wgpu (Rust) som du kan använda för att integrera WebGPU-stöd i dina applikationer.

Det bör också noteras att arbete pågår för att lägga till WebGPU-stöd till populära JavaScript-bibliotek som använder WebGL. Till exempel är fullt WebGPU-stöd redan deklarerat i Babylon.js och delvis i Three.js , PlayCanvas och TensorFlow.js.

Genomförandet av WebGPU kommer endast initialt att vara aktiverad på versioner för ChromeOS, macOS och Windows, medan för Linux och Android kommer WebGPU-stöd att aktiveras vid ett senare tillfälle.

Slutligen, om du är intresserad av att veta mer om det kan du läsa detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.