W3C har presenterat ett utkast till standard för WebGPU

W3C-konsortiet har presenterat de första utkasten till specifikationer för WebGPU och WebGPU Shading Language (WGSL), som definierar ett API för att utföra operationer pÄ GPU:n, sÄsom rendering och berÀkningar, samt ett shader-sprÄk för att skriva program som körs pÄ GPU:s sida. Det Àr konceptuellt liknande API:erna Vulkan, Metal och Direct3D 12. Specifikationerna har tagits fram av en arbetsgrupp bestÄende av ingenjörer frÄn Mozilla, Google, Apple och Microsoft.

Konceptuellt skiljer sig WebGPU frÄn WebGL pÄ ungefÀr samma sÀtt som grafiska API:er Vulkan skiljer sig frÄn OpenGL, men det baseras inte pÄ nÄgot specifikt grafiskt API, utan representerar ett universellt lager som anvÀnder samma lÄgnivÄ-primitiv som finns i Vulkan, Metal och Direct3D. WebGPU ger JavaScript-appar medel för lÄgnivÄkontroll av organisering, behandling och överföring av kommandon till GPU:n, hantering av relaterade resurser, minne, buffertar, texturobjekt och kompilerade grafiska shaders. Denna metod möjliggör högre prestanda för grafiska applikationer genom att minska overhead och förbÀttra effektiviteten med GPU:n.

WebGPU möjliggör skapandet av komplexa 3D-projekt för webben som fungerar lika bra som fristÄende program som direkt interagerar med Vulkan, Metal eller Direct3D, men som inte Àr bundna till specifika plattformar. WebGPU erbjuder ocksÄ ytterligare möjligheter vid portering av inhemska grafiska program till en form som kan köras baserat pÄ webblösningar, tack vare kompiling till WebAssembly. Utöver 3D-grafik omfattar WebGPU ocksÄ möjligheter relaterade till förflyttning av berÀkningar till GPU-sidan och körning av shaders.

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