Firefox næturbyggingar innihalda nú WebGPU stuðning

В nótt Firefox smíðar birtist stuðningur við forskriftir WebGPU, sem býður upp á forritunarviðmót fyrir 3D grafíkvinnslu og GPU hlið tölvuvinnslu, hugmyndalega svipað API Vulkan, Metal и Bein3D 12. Forskriftin er í þróun af Mozilla, Google, Apple, Microsoft og meðlimum samfélagsins í vinnuhópur, búin til af W3C samtökunum.

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 getur verið búið til í WebGPU Shading Language eða tilgreint í SPIR-V millistiginu og síðan þýtt yfir á skyggingartungumál sem studd eru af núverandi ökumönnum.

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 næturbyggingar innihalda nú WebGPU stuðning

Í Firefox er „dom.webgpu.enabled“ stillingin í about:config til að virkja WebGPU. CanvasContext flutningur krefst einnig að samsetning sé virkjuð WebRender ("gfx.webrender.all" í about:config), skrifað í Rust og útvistað flutningsaðgerðum síðuefnis í GPU. WebGPU útfærsla er byggð á verkefnakóða
wgpu, skrifað í Rust og hægt að keyra ofan á DX12, Vulkan og Metal API á Linux, Android, Windows og macOS (DX11 og OpenGL ES 3.0 stuðningur er einnig í þróun). Samhliða því er Google að þróa aðra útfærslu sem er fáanleg í Kanaríútibú Chromium og er virkt með „chrome://flags/#enable-unsafe-webgpu“ fánanum, en enn sem komið er virkar aðeins á macOS og Windows.

Heimild: opennet.ru

Bæta við athugasemd