W3C afhjúpar drög að WebGPU staðli

W3C hefur gefið út fyrstu drög að WebGPU og WebGPU Shading Language (WGSL) forskriftunum, sem skilgreina API til að framkvæma GPU aðgerðir eins og rendering og computing, sem og skyggingartungumál til að skrifa forrit sem keyra á GPU. hugmyndafræðilega svipað og Vulkan, Metal og Direct3D 12 API. Forskriftirnar voru unnar af vinnuhópi sem innihélt verkfræðinga frá Mozilla, Google, Apple og Microsoft.

Hugmyndalega er WebGPU frábrugðið WebGL á svipaðan hátt og Vulkan grafík API er frábrugðið OpenGL, en það 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 virka ekki verr en sjálfstæð forrit sem hafa beinan aðgang að Vulkan, Metal eða Direct3D, en eru ekki bundin við ákveðna vettvang. 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ð losa útreikninga á 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