Mozilla hefur ákveðið að virkja stuðning við WebGPU API og WGSL (WebGPU Shading Language) í Firefox. Fyrir kerfið Windows WebGPU-stuðningur verður virkur sjálfgefið í Firefox 141, áætlaður 22. júlí. Stefnt er að því að WebGPU-stuðningur verði síðan virkur í útgáfum næstu mánuði: Linux и macOS, og eftir nokkurn tíma í útgáfunni fyrir kerfið AndroidTil að virkja WebGPU handvirkt er hægt að nota færibreyturnar „dom.webgpu.enabled“ og „gfx.webrender.all“ á about:config síðunni.
Í Chrome var WebGPU-stuðningur í boði sjálfgefið í útgáfu 113, sem kom út í maí 2023. Í Safari er áætlað að WebGPU-stuðningur verði virkjaður sjálfgefið í haust (tilraunastuðningur hefur verið í boði frá nóvember 2021). Í Firefox hefur tilraunastuðningur við WebGPU verið til staðar frá árinu 2020, en var aðeins virkjaður sjálfgefið í næturútgáfum af Firefox. WebGPU-útfærsla Firefox byggir á WGPU verkefnakóðanum, skrifaðan í Rust og getur keyrt ofan á Direct3D 12, Vulkan, OpenGL og Metal grafíkforritaskilunum.
WebGPU býður upp á svipað forritaskil (API) og Vulkan, Metal og Direct3D 12 til að framkvæma aðgerðir á skjákortshliðinni. Auk þrívíddargrafíkar nær WebGPU einnig yfir möguleika sem tengjast því að flytja útreikninga á skjákortshliðina og framkvæma skuggaforrit (shaders). Hugmyndalega séð er WebGPU frábrugðið gömlu WebGL forskriftinni á svipaðan hátt og Vulkan grafík API er frábrugðið OpenGL. Á sama tíma er WebGPU ekki byggt á sérstöku grafík API, heldur er það alhliða lag sem notar sömu lágstigs frumstæð kerfi og eru í boði í Vulkan, Metal og Direct3D.
WebGPU gerir JavaScript forritum kleift að stjórna skipulagi, vinnslu og sendingu skipana til skjákortsins og stjórna tengdum auðlindum, minni, biðminni, áferðarhlutum og þýddum grafíkskyggjum. Þessi aðferð gerir grafíkforritum kleift að auka afköst með því að draga úr kostnaði og auka skilvirkni vinnu með skjákortinu.
Með WebGPU er hægt að búa til flókin þrívíddarverkefni sem eru óháð kerfum og virka jafn vel og sjálfstæð forrit sem nota Vulkan, Metal eða Direct3D beint. WebGPU býður einnig upp á viðbótarmöguleika til að flytja innfædd grafíkforrit yfir á form sem keyra má í vöfrum, þökk sé þýðingu í WebAssembly.
Helstu eiginleikar WebGPU og munur á WebGL:
- Aðskilin stjórnun auðlinda, undirbúningsvinna og sending skipana til GPU (í WebGL var einn hlutur ábyrgur fyrir öllu í einu). Þrjú aðskilin samhengi eru til staðar: GPU Tæki til að búa til auðlindir eins og áferð og biðminni; GPUCommandEncoder fyrir kóðun einstakra skipana, þar á meðal flutnings- og útreikningsstig; GPUCommandBuffer til að vera í biðröð fyrir framkvæmd á GPU. Hægt er að birta niðurstöðuna á svæði sem tengist einum eða fleiri strigaþáttum eða vinna án úttaks (til dæmis þegar tölvuverkefni eru keyrð). Að aðskilja stigin gerir það auðveldara að aðgreina auðlindasköpun og undirbúningsaðgerðir í mismunandi meðhöndlara sem geta keyrt á mismunandi þræði.
- Önnur nálgun á vinnslu ríkja. WebGPU býður upp á tvo hluti - GPURenderPipeline og GPUComputePipeline, sem gera þér kleift að sameina ýmsar aðstæður fyrirfram skilgreindar af þróunaraðilanum, sem gerir vafranum kleift að eyða ekki fjármagni í viðbótarvinnu, svo sem að setja saman skyggingar aftur. Stuðlar ríkin innihalda: skyggingar, hornpunkta biðminni og eigindaútlit, klístrað hópskipulag, blöndun, dýpt og mynstur og úttakssnið eftir endurgerð.
- Bindandi líkan svipað og auðlindaflokkunareiginleikar Vulkan. Til að flokka auðlindir saman býður WebGPU upp á GPUBindGroup hlut, sem hægt er að tengja við aðra svipaða hluti til notkunar í skyggingum á meðan skipanir eru skrifaðar. Að búa til slíka hópa gerir ökumanni kleift að framkvæma nauðsynlegar undirbúningsaðgerðir fyrirfram og gerir vafranum kleift að breyta auðlindabindingum á milli dráttarkalla mun hraðar. Útlit auðlindabindinga er hægt að forskilgreina með því að nota GPUBindGroupLayout hlutinn.
Heimild: opennet.ru
