Firefox se pridružuje novoj generaciji web grafike: WebGPU stiže na Linux i druge platforme

webgpu firefox

Mozilla je napravila ključni korak prema budućnosti obrade grafike na webu najavom Podrška za WebGPU je omogućena prema zadanim postavkama en Firefox 141Iako će funkcija biti aktivna samo na Windows sistemima u ovoj početnoj fazi, organizacija je već potvrdila da će u narednim mjesecima biti aktivirana i u verzijama za Linux i macOS, a kasnije i na Androidu.

Za one koji ne žele čekati, moguće je ručno omogućiti WebGPU mijenjanjem parametara dom.webgpu.enabled i gfx.webrender.all u odjeljku za naprednu konfiguraciju (about:config).

WebGPU: Novi grafički standard za moderni web

WebGPU predstavlja revoluciju u načinu na koji web preglednici komuniciraju s GPU-om. Za razliku od veterana WebGL-a, Ovaj novi API nudi pristup nižeg nivoa, uporediv sa onim što nude Vulkan, Direct3D 12 i Metal. u izvornim aplikacijama. To znači da web aplikacije sada mogu pristupiti grafičkoj snazi sistema s većom efikasnošću, manjim opterećenjem i mnogo finijom kontrolom nad resursima i operacijama renderiranja.

U Firefoxu je ova funkcionalnost implementirana putem WGPU projekta, Razvijen u Rustu, djeluje kao univerzalni sloj preko različitih grafičkih API-ja sistema. Zahvaljujući ovoj arhitekturi, WebGPU Može se pokretati na Direct3D 12 na Windowsu, Vulkanu na Linuxu, Metalu na macOS-u i OpenGL-u kada je potrebno. Ova višeplatformska strategija osigurava da programeri mogu kreirati napredne grafičke aplikacije na webu bez brige o specifičnostima svakog operativnog sistema.

WebGPU omogućava JavaScript projektima da direktno upravljaju kreiranjem grafičkih resursa, orkestracija komandi i strimovanje podataka ka GPU-u. To uključuje sve, od prilagođenih shadera do memorijskih struktura poput vertex i teksturnih bafera, što je ranije bio ograničeniji i manje efikasan zadatak u WebGL-u. Sa ovom novom mogućnošću, Web aplikacije mogu ponuditi vizualna iskustva koja su ranije bila rezervirana za izvorni softver, uključujući složene 3D igre, naučne simulacije, trodimenzionalno modeliranje i alate za uređivanje grafike u stvarnom vremenu.

Takođe, WebGPU nije namijenjen samo za grafiku. Takođe uključuje funkcionalnosti orijentisane na paralelno računarstvo, omogućavajući da se mnogi zadaci koji zahtijevaju intenzivnu obradu izvršavaju direktno na GPU-u. Ovaj pristup otvara vrata aplikacijama kao što su vještačka inteligencija u pregledniku, obrada videa i vizualizacija velikih podataka, sve sa neviđenim performansama za web okruženja.

Ključne razlike u odnosu na WebGL: fleksibilnost, performanse i kontrola

Jedan od Fundamentalne razlike između WebGPU-a i WebGL-a leži u model upravljanja resursima. WebGPU uvodi strukturiraniji i segmentiraniji pristup, gdje se svaki dio grafičkog procesa obrađuje nezavisno. Programeri imaju specifične kontekste kao što su GPUDevice za kreiranje resursa, GPUCommandEncoder za kodiranje komandi i GPUCommandBuffer za konačno izvršavanje komandi na GPU-u. Ovo odvajanje poboljšava efikasnost i olakšava paralelni rad između niti.

Sa druge strane, Definicija stanja u WebGPU-u također usvaja moderniju filozofiju.Umjesto oslanjanja na globalna stanja poput WebGL-a, ovaj novi API omogućava programerima da definiraju specifične kombinacije putem objekata poput GPURenderPipeline i GPUComputePipeline, izbjegavajući nepotrebne redundancije i ponovnu kompajlaciju.

Što se tiče sistema povezivanja resursaWebGPU je direktno inspirisan objedinjavanjem resursa koje nudi Vulkan.Korištenjem struktura poput GPUBindGroup i GPUBindGroupLayout, moguće je organizirati pristup teksturama, baferima i drugim podacima potrebnim za izvršavanje shadera, smanjujući vrijeme pripreme između različitih faza renderiranja i značajno povećavajući ukupne performanse.

Sa konačnim usvajanjem WebGPU-a u Firefoxu, Panorama je konsolidovana u kojoj su tri glavna preglednika (Chrome, Safari, a sada i Firefox) usvojiti ovaj novi standardChrome je to učinio u verziji 113, objavljenoj u maju 2023. godine, a Apple je najavio da će to omogućiti po defaultu u Safariju ove jeseni. Mozillina implementacija, iako kasnija, obećava da će se istaknuti po svojoj integraciji s tehnologijama otvorenog koda poput Rusta i svom višeplatformskom pristupu dizajniranom od temelja.