Chrome kommer att inkludera stöd för WebGPU

Google har meddelat att de frÄn och med Chrome 113, vars release Àr planerad till den 2 maj, kommer att inkludera stöd för grafik-API:et WebGPU och shadersprÄket WGSL (WebGPU Shading Language) som standard. WebGPU erbjuder ett programmeringsgrÀnssnitt liknande Vulkan, Metal och Direct3D 12 för att utföra operationer pÄ GPU-sidan, sÄsom rendering och berÀkningar, samt gör det möjligt att anvÀnda ett shadersprÄk för att skriva program som körs pÄ GPU. Implementeringen av WebGPU kommer först att finnas tillgÀnglig i versioner för ChromeOS, macOS och Windows. För Linux och Android kommer WebGPU-stödet att aktiveras senare.

Utöver Chrome testas experimentellt WebGPU i Firefox sedan april 2020 och i Safari sedan november 2021. För att aktivera WebGPU i Firefox mÄste man i about:config stÀlla in flaggorna dom.webgpu.enabled och gfx.webgpu.force-enabled. Det finns för nÀrvarande inga uppgifter om planer för att göra WebGPU till standard i Firefox och Safari. Implementeringarna av WebGPU för Firefox och Chrome finns tillgÀngliga som separata bibliotek - Dawn (C++) och wgpu (Rust) som kan anvÀndas för att integrera WebGPU-stöd i sina egna applikationer. Det pÄgÄr ocksÄ arbete med att lÀgga till WebGPU-stöd i populÀra JavaScript-bibliotek som ursprungligen anvÀnder WebGL. Till exempel har fullstÀndigt stöd för WebGPU redan meddelats i Babylon.js, medan delvis stöd finns i Three.js, PlayCanvas och TensorFlow.js.

Konceptuellt skiljer sig WebGPU frÄn WebGL pÄ ett sÀtt som liknar skillnaden mellan grafik-API:et Vulkan och OpenGL, men WebGPU baseras inte pÄ ett specifikt grafik-API utan utgör ett universellt lager som anvÀnder samma lÄgnivÄelement som finns i Vulkan, Metal och Direct3D. WebGPU tillhandahÄller JavaScript-applikationer med medel för lÄgnivÄkontroll över organisation, behandling och överföring av kommandon till GPU:n, hantering av relaterade resurser, minne, buffertar, texturobjekt och kompilering av grafiska shaders. Denna metod möjliggör högre prestanda för grafikapplikationer genom att minska overhead och öka effektiviteten vid arbete med GPU.

WebGPU ger möjligheten att skapa komplexa 3D-projekt för webben, som fungerar lika bra som fristÄende program som direkt anvÀnder Vulkan, Metal eller Direct3D, men utan att vara knutna till specifika plattformar. WebGPU erbjuder ocksÄ ytterligare möjligheter för att porta inhemska grafiska program till en form som kan fungera med webbtill teknologi, genom kompilering till WebAssembly. Förutom 3D-grafik tÀcker WebGPU Àven möjligheterna för att överföra berÀkningar till GPU-sidan och köra shader-program.

Nyckelfunktioner i WebGPU:

  • Separat hantering av resurser, förberedande arbeten och överföring av kommandon till GPU (i WebGL var ett objekt ansvarigt för allt pĂ„ en gĂ„ng). Tre separata kontexter tillhandahĂ„lls: GPUDevice för att skapa resurser som texturer och buffertar; GPUCommandEncoder för att koda individuella kommandon, inklusive rendering och berĂ€kningssteg; GPUCommandBuffer för att sĂ€tta i kö för utförande i GPU. Resultatet kan ritas i ett omrĂ„de kopplat till ett eller flera canvas-element, eller bearbetas utan output (t.ex. vid körning av berĂ€kningsuppgifter). Separeringen av stegen gör det enklare att distribuera skapandet av resurser och förberedande operationer till olika hanterare, som kan köras i olika trĂ„dar.
  • Annorlunda angreppssĂ€tt vid hantering av tillstĂ„nd. I WebGPU erbjuds tvĂ„ objekt — GPURenderPipeline och GPUComputePipeline, som möjliggör kombination av olika tillstĂ„nd, fördefinierade av utvecklaren, vilket gör att webblĂ€saren inte behöver slösa resurser pĂ„ att utföra extra arbete, sĂ„som omkompilering av shaders. Bland de stödda tillstĂ„nden finns: shaders, layout av vertexbuffert och attribut, layout av kopplade grupper, blandning, djup och mallar, utdataformat efter rendering.
  • Bindningsmodellen pĂ„minner mycket om de resurser som grupperas i Vulkan. För att sammanföra resurser i grupper tillhandahĂ„ller WebGPU objektet GPUBindGroup, vilket under kommandoskrivning kan kopplas till andra liknande objekt för anvĂ€ndning i shaders. Skapandet av sĂ„dana grupper gör det möjligt för drivrutinen att i förvĂ€g utföra nödvĂ€ndiga förberedande Ă„tgĂ€rder, vilket gör att webblĂ€saren kan byta resursbindningar mycket snabbare mellan renderinganrop. Layouten av resursbindningar kan definieras i förvĂ€g med hjĂ€lp av objektet GPUBindGroupLayout.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster