Firefox i Safari će dobiti podršku za WebGPU

Mozilla je odlučila omogućiti podršku za WebGPU API i WGSL (WebGPU Shading Language) u Firefoxu. Za platformu Windows Podrška za WebGPU bit će omogućena prema zadanim postavkama u Firefoxu 141, planiranom za 22. srpnja. Planirano je da će podrška za WebGPU biti omogućena u verzijama za sljedeće mjesece: Linux и macOS, a nakon nekog vremena i u verziji za platformu AndroidZa ručno omogućavanje WebGPU-a možete koristiti parametre "dom.webgpu.enabled" i "gfx.webrender.all" na stranici about:config.

U Chromeu je podrška za WebGPU bila ponuđena prema zadanim postavkama u verziji 113, objavljenoj u svibnju 2023. U Safariju se planira omogućiti podrška za WebGPU prema zadanim postavkama ove jeseni (eksperimentalna podrška dostupna je od studenog 2021.). U Firefoxu je eksperimentalna podrška za WebGPU prisutna od 2020., ali je bila omogućena prema zadanim postavkama samo u noćnim verzijama Firefoxa. Firefoxova implementacija WebGPU-a temelji se na kodu projekta WGPU, napisanom u Rustu i sposobnom za pokretanje na grafičkim API-jima Direct3D 12, Vulkan, OpenGL i Metal.

WebGPU pruža sličan API kao Vulkan, Metal i Direct3D 12 za izvođenje operacija na strani GPU-a. Osim 3D grafike, WebGPU također pokriva mogućnosti vezane uz preusmjeravanje izračuna na stranu GPU-a i izvršavanje shadera. Konceptualno, WebGPU se razlikuje od stare WebGL specifikacije na gotovo isti način na koji se Vulkan grafički API razlikuje od OpenGL-a. Istovremeno, WebGPU se ne temelji na specifičnom grafičkom API-ju, već je univerzalni sloj koji koristi iste primitive niske razine koji su dostupni u Vulkanu, Metalu i Direct3D-u.

WebGPU omogućuje JavaScript aplikacijama kontrolu organizacije, obrade i prijenosa naredbi na GPU te upravljanje povezanim resursima, memorijom, međuspremnicima, teksturnim objektima i kompiliranim grafičkim shaderima. Ovaj pristup omogućuje veće performanse grafičkih aplikacija smanjenjem opterećenja i povećanjem učinkovitosti rada s GPU-om.

Pomoću WebGPU-a možete stvarati platformski neovisne, složene 3D projekte koji funkcioniraju jednako dobro kao i samostalni programi koji izravno koriste Vulkan, Metal ili Direct3D. WebGPU također pruža dodatne mogućnosti za prenošenje izvornih grafičkih programa u oblik koji se može pokretati u preglednicima, zahvaljujući kompajliranju u WebAssembly.

Ključne značajke WebGPU-a i razlike u odnosu na WebGL:

  • Odvojeno upravljanje resursima, pripremni rad i prijenos naredbi na GPU (u WebGL-u jedan je objekt bio odgovoran za sve odjednom). Dostupna su tri odvojena konteksta: GPUDevice za stvaranje resursa kao što su teksture i međuspremnici; GPUCommandEncoder za kodiranje pojedinačnih naredbi, uključujući faze renderiranja i izračuna; GPUCommandBuffer koji će biti stavljen u red čekanja za izvršenje na GPU-u. Rezultat se može prikazati u području koje je povezano s jednim ili više elemenata platna ili se može obraditi bez izlaza (na primjer, kada se izvode računalni zadaci). Odvajanje faza olakšava razdvajanje operacija stvaranja i pripreme resursa u različite rukovatelje koji se mogu izvoditi na različitim nitima.
  • Drugačiji pristup obradi stanja. WebGPU nudi dva objekta - GPURenderPipeline i GPUComputePipeline, koji vam omogućuju kombiniranje različitih stanja unaprijed definiranih od strane programera, što omogućuje pregledniku da ne troši resurse na dodatni rad, kao što je ponovno kompajliranje shadera. Podržana stanja uključuju: shadere, međuspremnik vrhova i rasporede atributa, rasporede ljepljivih grupa, miješanje, dubinu i uzorke te izlazne formate nakon renderiranja.
  • Model vezivanja sličan Vulkanovim značajkama grupiranja resursa. Za grupiranje resursa zajedno, WebGPU pruža objekt GPUBindGroup, koji se može povezati s drugim sličnim objektima za korištenje u shaderima tijekom pisanja naredbi. Stvaranje takvih grupa omogućuje vozaču da izvrši potrebne pripremne radnje unaprijed, a pregledniku omogućuje mnogo bržu promjenu veza resursa između poziva crtanja. Raspored povezivanja resursa može se unaprijed definirati pomoću objekta GPUBindGroupLayout.

Izvor: opennet.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster