В
Lykilmarkmið WebGPU er að bjóða upp á öruggt, notendavænt, flytjanlegt og afkastamikið forritunarviðmót fyrir vefvettvanginn til að nýta sér þrívíddargrafík tækni og getu sem nútíma grafík forritaskil nútímakerfisins bjóða upp á, svo sem Direct3D 3 á Windows, Metal á macOS og Vulkan á Linux. Hugmyndalega er WebGPU frábrugðið WebGL á svipaðan hátt og Vulkan er frábrugðið OpenGL, og á sama tíma er það ekki byggt á ákveðnu grafísku API, heldur er það alhliða lag sem notar almennt sömu lágstigs frumstæður sem finnast í Vulkan, Metal og Direct12D.
WebGPU veitir JavaScript forritum með lægra stigi stjórn á skipulagi, vinnslu og sendingu skipana til GPU, stjórnar tengdum auðlindum, 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 fullkomin flókin þrívíddarverkefni fyrir vefinn sem virka ekki verr en sjálfstæð forrit sem hafa beinan aðgang að Vulkan, Metal eða Direct3D, en eru ekki bundin ákveðnum kerfum. WebGPU veitir einnig viðbótarmöguleika þegar innfædd grafíkforrit eru flutt yfir á vefvirkt form með því að nota WebAssembly tækni. Til viðbótar við þrívíddargrafík, nær WebGPU einnig yfir getu sem tengist því að hlaða út útreikningum á GPU og styðja við skuggaþróun. Shaders
WebGPU notar sérstaka stjórnun auðlinda, undirbúningsvinnu og sendingu skipana til GPU (í WebGL var einn hlutur ábyrgur fyrir öllu í einu). Boðið er upp á þrjú aðskilin samhengi:
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.
Annar munurinn á WebGPU og WebGL er önnur nálgun við að meðhöndla ríki. 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ð.
Þriðji eiginleiki WebGPU er að mestu kallaður bindandi líkanið
minnir á auðlindaflokkunartækin sem eru til staðar í 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.
Í Firefox er „dom.webgpu.enabled“ stillingin í about:config til að virkja WebGPU. CanvasContext flutningur krefst einnig að samsetning sé virkjuð
Heimild: opennet.ru