Podrška za WebGPU dolazi do noćnih verzija Firefoxa

Objavljene informacije o integraciji specifikacije pomoći za WebGPU u Firefoxu grade se svake noći, što sada pruža programsko sučelje za obradu 3D grafike i računarstvo na strani GPU-a, konceptualno slično API-ju Vulkan, metalu i Direct3D 12. Specifikaciju razvijaju Mozilla, Google, Apple, Microsoft i predstavnici zajednice u radnoj grupi koju je kreirala organizacija W3C.

Ključni cilj WebGPU-a je stvoriti siguran, prikladan, prenosiv i softverski interfejs visokih performansi za upotrebu na web platformi sa tehnologijom 3D grafike i mogućnostima koje pružaju savremeni sistemski API-ji za grafiku poput Direct3D 12 na Windowsima, Metal na macOS-u i Vulkan na Linuxu.

Konceptualno, WebGPU se razlikuje od WebGL-a na isti način na koji se Vulkan razlikuje od OpenGL-a i nije zasnovan na određenom grafičkom API-ju, već je to univerzalni sloj, općenito, koji koristi iste primitive niskog nivoa koji su dostupni u Vulkanu, Metalu i Direct3D-u.

U Firefoxu je postavljena postavka "dom.webgpu.enabled" da se omogući WebGPU u oko: config. Pored prikazivanja CanvasContext-a, takođe je potrebno uključiti i sistem kompozicije WebRender ("gfx.webrender.all" u about: config).

Implementacija WebGPU zasniva se na wgpu kodu projekta napisanom u Rustu i može raditi povrh DX12, Vulkan i Metal API-ja na Linuxu, Androidu, Windowsima i macOS-ima (podrška za DX11 i OpenGL ES 3.0 je takođe u fazi izrade).

O WebGPU

WebGPU pruža JavaScript aplikacije s alatima za kontrolu nižeg nivoa o organizaciji, obrada i prenos naredbi na GPU, upravljanje povezanim resursima, memorijom, međuspremnicima, objektima teksture i kompiliranim grafičkim sjenčanicima. Ovaj pristup hoće omogućava grafičke aplikacije većih performansi smanjenjem režijskih troškova i povećanjem efikasnosti rada s GPU-om.

WebGPU omogućava stvaranje cjelovitih složenih 3D projekata za web koji ne rade lošije od samostalnih programa koji izravno komuniciraju s Vulkanom, Metalom ili Direct3D, ali nisu vezani za određene platforme.

Takođe pruža dodatne mogućnosti prenošenjem izvornih grafičkih programa u oblik koji može funkcionisati na osnovu tehnologija zasnovanih na mreži pomoću tehnologije WebAssembly.

Pored 3D grafike, WebGPU takođe pokriva mogućnosti povezane sa uklanjanjem računanja pored GPU-a i podrška za razvoj sjenera. Shaderi se mogu kreirati u WebGPU jeziku sjenčanja ili navesti u srednjem formatu SPIR-V, a zatim prevesti na jezike sjenčanja podržane od trenutnih pokretačkih programa.

WebGPU koristi zasebno upravljanje resursima, pripremni rad i prijenos naredbi na GPU (u WebGL-u je jedan objekt bio odgovoran za sve odjednom). Osigurana 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 prikazivanja i računanja; GPUCommandBuffer u red za izvršenje na GPU-u.

Druga razlika između WebGPU i WebGL je drugačiji pristup rukovanju stanjima. U WebGPU-u su predložena dva objekta: GPURenderPipeline i GPUComputePipeline, koji omogućavaju kombiniranje nekoliko stanja koja je unaprijed definirao programer, što omogućava pregledniku da ne troši resurse na dodatni posao, poput ponovnog sastavljanja sjenčica. Podržana stanja uključuju: sjenčiće, vertex međuspremnike i rasporede atributa, priložene rasporede grupa, miješanje, dubinu i obrasce, izlazne formate nakon prikazivanja.

Treća karakteristika WebGPU-a je model vezivanja, što u mnogim aspektima podseća na način udruživanja resursa prisutnih u Vulkanu. Da bi grupirao resurse u grupe, WebGPU pruža GPUBindGroup objekt koji se upisivanjem naredbi može povezati s drugim sličnim objektima za upotrebu u sjenčanicima.

Stvaranje takvih grupa omogućava vozaču da unaprijed izvrši potrebne pripremne radnje, a preglednik mu omogućuje brže prebacivanje veza resursa između poziva za povlačenje.

Izvor: https://hacks.mozilla.org/


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.