Nattversionerna av Firefox har fÄtt stöd för WebGPU

I nattliga i Firefox-versioner har det tillkommit stöd för specifikationen WebGPU, som tillhandahÄller ett programmeringsgrÀnssnitt för behandling av 3D-grafik och berÀkningar pÄ GPU-sidan, konceptuellt liknande ett API Vulkan, Metal och Direct3D 12. Specifikationen utvecklas av Mozilla, Google, Apple, Microsoft och representanter för gemenskapen i arbetsgruppen, som skapats under W3C.

Ett av de viktigaste mÄlen med WebGPU Àr att skapa ett sÀkert, anvÀndarvÀnligt, bÀrbart och högpresterande programmeringsgrÀnssnitt för anvÀndning pÄ webben av teknologier och funktioner för 3D-grafik som tillhandahÄlls av moderna systemgrafiska API:er sÄsom Direct3D 12 i Windows, Metal i macOS och Vulkan i Linux. Konceptuellt skiljer sig WebGPU frÄn WebGL pÄ ungefÀr samma sÀtt som Vulkan skiljer sig frÄn OpenGL och bygger inte pÄ ett specifikt grafiskt API utan utgör ett universellt lager som i allmÀnhet anvÀnder samma lÄgnivÄprimitiver som finns i Vulkan, Metal och Direct3D.

WebGPU ger JavaScript-appar verktyg för mer lÄgnivÄkontroll över organisationen, bearbetningen och överföringen av kommandon till GPU, hantering av relaterade resurser, minne, buffertar, texturobjekt och kompilerade grafiska shader. En liknande metod möjliggör högre prestanda för grafiska applikationer genom att minska overhead och öka effektiviteten i arbetet med GPU.

WebGPU gör det möjligt att skapa kompletta 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 bindande för specifika plattformar. WebGPU ger ocksÄ ytterligare möjligheter nÀr det gÀller portering av inhemska grafiska program till en form som kan fungera pÄ web-teknologier genom anvÀndning av WebAssembly-teknologi. Förutom 3D-grafik omfattar WebGPU Àven möjligheter relaterade till berÀkningar pÄ GPU-sidan och stöd för utveckling av shaders. Shader kan kan skapas med WebGPU Shading Language eller definieras i det mellanliggande formatet SPIR-V, som sedan översÀtts till shader-sprÄk som stöds av aktuella drivrutiner.

I WebGPU tillÀmpas separat hantering av resurser, förberedande arbete och överföring av kommandon till GPU (i WebGL ansvarade ett objekt för allt pÄ en gÄng). Tre separata sammanhang tillhandahÄlls:
GPUDevice för att skapa resurser som texturer och buffertar; GPUCommandEncoder för att koda individuella kommandon, inklusive rendering och berÀkning; GPUCommandBuffer för att sÀttas i kö för att utföras av GPU:n. Resultatet kan ritas ut i ett omrÄde kopplat till ett eller flera element i canvas, eller bearbetas utan utdata (till exempel vid körning av berÀkningsuppgifter). Separationen av faser underlÀttar uppdelningen av resurs skapande och förberedande operationer i olika hanterare som kan köras i olika trÄdar.

Den andra skillnaden mellan WebGPU och WebGL Ă€r den olika hanteringen av tillstĂ„nd. I WebGPU erbjuds tvĂ„ objekt — GPURenderPipeline och GPUComputePipeline, som tillĂ„ter kombination av olika tillstĂ„nd, fördefinierade av utvecklaren, vilket gör att webblĂ€saren kan spara resurser genom att undvika ytterligare arbete, sĂ„som omkompilering av shadert. Bland de stödja tillstĂ„nden finns: shadert, layout för vertexbuffertar och attribut, layout för kopplade grupper, blandning, djup och mallar, utdataformat efter rendering.

Den tredje funktionen hos WebGPU kallas bindningsmodellen, som i stor utstrÀckning
liknar de resurshanteringsverktyg som finns i Vulkan.
För att gruppera resurser i WebGPU tillhandahÄlls objektet GPUBindGroup, som vid skrivning av kommandon kan kopplas till andra liknande objekt för anvÀndning i shaders. Skapandet av sÄdana grupper ger drivrutinen möjlighet att genomföra nödvÀndiga förberedande ÄtgÀrder i förvÀg, och ger webblÀsaren möjlighet att snabbt Àndra resursbindningar mellan anrop till rendering. Layouten för resursbindningar kan definieras i förvÀg med hjÀlp av objektet GPUBindGroupLayout.

Nattversionerna av Firefox har fÄtt stöd för WebGPU

I Firefox för att aktivera WebGPU i about:config finns instÀllningen "dom.webgpu.enabled". För att rita ut CanvasContext krÀvs Àven aktiveringen av compositesystemet Àr aktiverat ("gfx.webrender.all" i about:config), skrivet i Rust och som tar ut rendering av sidans innehÄll till GPU:n. Implementation av WebGPU Àr baserad pÄ koden av projektet
wgpu, skrivet i Rust och som kan fungera ovanpÄ API:erna DX12, Vulkan och Metal i Linux, Android, Windows och macOS (stöd för DX11 och OpenGL ES 3.0 Àr ocksÄ under utveckling). Parallellt utvecklar Google en annan implementation som Àr tillgÀnglig i Canary-grenen Chromium aktiveras med flaggan «chrome://flags/#enable-unsafe-webgpu», men fungerar hittills endast pÄ macOS och Windows.

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