Chrome će već imati podršku za WebGPU i bit će omogućen prema zadanim postavkama

WebGPU Chrome

Nakon godina razvoja, Chrome tim izdaje WebGPU

Prije nekoliko dana Google je predstavio kroz jednu najavljenu zadana podrška za WebGPU grafički API i WebGPU Shading Language (WGSL) u grani Chrome 113, čiji je izlazak zakazan za 2. svibnja.

Za one koji nisu svjesni WebGPU-a, trebali biste to znati pruža API sličan Vulkanu, Metalu i Direct3D 12 za izvođenje operacija na strani GPU-a kao što su renderiranje i izračunavanje, i također omogućuje korištenje shader jezika za pisanje programa na strani GPU-a.

O WebGPU-u

Konceptualno, WebGPU se razlikuje od WebGL-a na isti način na koji se Vulkan graphics API razlikuje od OpenGL-a, ali WebGPU se ne temelji na specifičnom grafičkom API-ju, već je to sloj opće namjene koji koristi iste primitive niske razine kao i Vulkan. Metal i Direct3D. WebGPU pruža JavaScript aplikacijama nisku razinu kontrole nad organizacijom, obrada i prijenos naredbi GPU-u, upravljanje povezanim resursima, memorijom, međuspremnicima, teksturnim objektima i sastavljenim grafičkim shaderima. Ovaj vam pristup omogućuje postizanje viših performansi grafičkih aplikacija smanjenjem opterećenja i povećanjem učinkovitosti GPU-a.

WebGPU omogućuje vam izradu složenih 3D projekata za web koji rade jednako dobro kao i samostalni programi koji izravno koriste Vulkan, Metal ili Direct3D, ali nisu vezani za određene platforme. WebGPU također pruža dodatne opcije za prijenos izvornih grafičkih programa u web-omogućeni obrazac kompajliranjem u WebAssembly. Uz 3D grafiku, WebGPU također pokriva mogućnosti povezane s pretovarom računanja na stranu GPU-a i pokretanjem shadera.

Od ključnih značajki WebGPU-a možemo istaknuti sljedeće:

  • Odvojeno upravljanje resursima, pripremni rad i prijenos zapovijedi na GPU (u WebGL-u je jedan 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 obrade i izračuna; GPUCommandBuffer za prosljeđivanje u red čekanja za izvršavanje GPU-a.
    Rezultat se može prikazati u području koje je povezano s jednom ili više stavki na platnu ili se može prikazati bez izlaza (na primjer, kada se izvršavaju računalni zadaci). Staging olakšava razdvajanje operacija stvaranja resursa i pružanja u različite kontrolere koji se mogu izvoditi na različitim nitima.
  • Drugačiji pristup rukovanju stanjem. WebGPU pruža dva objekta, GPURenderPipeline i GPUComputePipeline, koji vam omogućuju kombiniranje različitih stanja koje je unaprijed definirao programer, omogućujući 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 fiksnih grupa, miješanje, dubinu i uzorke, izlazne formate nakon renderiranja.
  • Obvezujući model, sličan Vulkanovim alatima za udruživanje resursa. Za grupiranje resursa u grupe, WebGPU pruža objekt GPUBindGroup koji se može povezati s drugim sličnim objektima za korištenje u shaderima tijekom snimanja naredbi.
    Stvaranje takvih grupa omogućuje kontroleru da izvrši potrebne pripremne radnje unaprijed i omogućuje pregledniku da mnogo brže mijenja vezanja resursa između poziva za crtanje. Raspored povezivanja resursa može se unaprijed definirati pomoću objekta GPUBindGroupLayout.

Osim Chromea, eksperimentalna WebGPU podrška testirana je od travnja 2020. u Firefoxu a od studenog 2021. na Safariju. Da biste omogućili WebGPU u Firefoxu, morate postaviti oznake dom.webgpu.enabled i gfx.webgpu.force-enabled u about:config.

Još uvijek nema planova za uključivanje WebGPU-a prema zadanim postavkama u Firefoxu i Safariju. WebGPU implementacije razvijene za Firefox i Chrome dostupne su kao zasebne biblioteke: Dawn (C++) i wgpu (Rust) koje možete koristiti za integraciju WebGPU podrške u svoje aplikacije.

Također treba napomenuti da je u tijeku rad na dodavanju WebGPU podrške popularnim JavaScript bibliotekama koje izvorno koriste WebGL. Na primjer, puna podrška za WebGPU već je deklarirana u Babylon.js, a djelomična u Three.js, PlayCanvas i TensorFlow.js.

Provedba WebGPU će u početku biti omogućen samo na verzijama za ChromeOS, macOS i Windows, dok će za Linux i Android podrška za WebGPU biti aktivirana kasnije.

Konačno, ako vas zanima više o tome, možete se posavjetovati s pojedinostima U sljedećem linku.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.