WebGPU stuðningur verður virkur í Chrome

Google hefur tilkynnt að sjálfgefinn stuðningur sé tekinn inn fyrir WebGPU grafík API og WGSL (WebGPU Shading Language) í Chrome 113, sem áætlað er að komi út 2. maí. WebGPU býður upp á forritunarviðmót svipað og Vulkan, Metal og Direct3D 12 til að framkvæma aðgerðir á GPU hlið eins og rendering og computing, og gerir einnig kleift að nota skyggingartungumál til að skrifa forrit sem keyra á GPU hliðinni. WebGPU útfærslan verður upphaflega aðeins virkjuð á ChromeOS, macOS og Windows smíðum. Fyrir Linux og Android verður WebGPU stuðningur virkur síðar.

Auk Chrome hefur tilraunastuðningur við WebGPU verið prófaður síðan í apríl 2020 í Firefox og síðan í nóvember 2021 í Safari. Til að virkja WebGPU í Firefox ættirðu að stilla dom.webgpu.enabled og gfx.webgpu.force-enabled fánana í about:config. Það eru engar áætlanir ennþá um að virkja WebGPU sjálfgefið í Firefox og Safari. WebGPU útfærslur þróaðar fyrir Firefox og Chrome eru fáanlegar í formi aðskildra bókasöfna - Dawn (C++) og wgpu (Rust), sem þú getur notað til að samþætta WebGPU stuðning inn í forritin þín. Vinna er einnig í gangi við að bæta WebGPU stuðningi við vinsæl JavaScript bókasöfn sem nota WebGL innbyggt. Til dæmis hefur þegar verið tilkynnt um fullan stuðning fyrir WebGPU í Babylon.js og stuðningur að hluta í Three.js, PlayCanvas og TensorFlow.js.

Hugmyndalega er WebGPU frábrugðið WebGL á svipaðan hátt og Vulkan grafík API er frábrugðið OpenGL, en WebGPU er ekki byggt á sérstöku grafík API, heldur er það alhliða lag sem notar sömu lágstigs frumstæður sem finnast í Vulkan, Metal og Direct3D. WebGPU veitir JavaScript forritum stjórn á lágu stigi yfir skipulagi, vinnslu og sendingu skipana til GPU, stjórnun tengdra auðlinda, minni, biðminni, áferðarhlutum og samsettum grafískum skyggingum. Þessi nálgun gerir þér kleift að ná meiri afköstum fyrir grafíkforrit með því að draga úr kostnaði og auka skilvirkni vinnu með GPU.

WebGPU gerir það mögulegt að búa til flókin þrívíddarverkefni fyrir vefinn sem skila sér ekki verr en sjálfstæð forrit sem nota beint Vulkan, Metal eða Direct3D, en eru ekki bundin við sérstakar kerfa. WebGPU veitir einnig viðbótarmöguleika til að flytja innfædd grafíkforrit yfir á vefvirkt form með því að safna saman í WebAssembly. Til viðbótar við þrívíddargrafík, inniheldur WebGPU einnig möguleika sem tengjast því að hlaða út útreikningum á GPU og framkvæma skyggingar.

Helstu eiginleikar WebGPU:

  • 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

Bæta við athugasemd