Firefox ni alẹ kọ ni bayi pẹlu atilẹyin WebGPU

В ale Firefox kọ farahan atilẹyin sipesifikesonu WebGPU, eyiti o pese wiwo siseto fun sisẹ awọn aworan 3D ati iširo-ẹgbẹ GPU, ni imọran ti o jọra si API Iyẹn, irin и Direct3D 12. Sipesifikesonu jẹ idagbasoke nipasẹ Mozilla, Google, Apple, Microsoft ati awọn ọmọ ẹgbẹ agbegbe ni ẹgbẹ iṣẹ, da nipa W3C agbari.

Ibi-afẹde bọtini ti WebGPU ni lati pese aabo, ore-olumulo, gbigbe, ati wiwo siseto iṣẹ-giga fun pẹpẹ wẹẹbu lati lo awọn imọ-ẹrọ eya aworan 3D ati awọn agbara ti a pese nipasẹ awọn ẹya ara ẹrọ eto ode oni APIs, gẹgẹbi Direct3D 12 lori Windows, Irin lori macOS, ati Vulkan lori Lainos. Ni imọran, WebGPU yato si WebGL ni ọna kanna ti Vulkan yato si OpenGL, ati ni akoko kanna ko da lori API awọn eya aworan kan pato, ṣugbọn o jẹ ipele ti gbogbo agbaye ti o nlo awọn ipilẹ-kekere kanna ti o wa ni Vulkan, Irin ati Direct3D.

WebGPU n pese awọn ohun elo JavaScript pẹlu iṣakoso ipele-kekere lori iṣeto, sisẹ, ati gbigbe awọn aṣẹ si GPU, iṣakoso awọn orisun ti o somọ, iranti, awọn buffers, awọn nkan ijuwe, ati awọn ojiji awọn aworan ti a ṣajọ. Ọna yii ngbanilaaye lati ṣaṣeyọri iṣẹ ṣiṣe ti o ga julọ fun awọn ohun elo eya aworan nipa idinku awọn idiyele oke ati jijẹ ṣiṣe ti ṣiṣẹ pẹlu GPU.

WebGPU jẹ ki o ṣee ṣe lati ṣẹda awọn iṣẹ akanṣe 3D eka ti o ni kikun fun oju opo wẹẹbu ti ko ṣiṣẹ buru ju awọn eto adaduro ti o wọle taara Vulkan, Irin tabi Direct3D, ṣugbọn ko ni asopọ si awọn iru ẹrọ kan pato. WebGPU tun pese awọn agbara afikun nigba gbigbe awọn eto eya aworan abinibi sinu fọọmu ti n ṣiṣẹ wẹẹbu nipasẹ lilo imọ-ẹrọ WebAssembly. Ni afikun si awọn aworan 3D, WebGPU tun ni wiwa awọn agbara ti o ni ibatan si awọn iṣiro gbigbe si GPU ati atilẹyin idagbasoke shader. Shaders le ṣẹda ni Ede Shading WebGPU tabi pato ni ọna kika SPIR-V agbedemeji, ati lẹhinna tumọ si awọn ede shader ti o ni atilẹyin nipasẹ awọn awakọ lọwọlọwọ.

WebGPU nlo iṣakoso lọtọ ti awọn orisun, iṣẹ igbaradi, ati gbigbe awọn aṣẹ si GPU (ni WebGL, ohun kan jẹ iduro fun ohun gbogbo ni ẹẹkan). Awọn aaye ọtọtọ mẹta ni a pese:
GPUDevice fun ṣiṣẹda oro bi awoara ati buffers; GPUCommandEncoder fun fifi koodu pa awọn aṣẹ kọọkan, pẹlu ṣiṣe ati awọn ipele iṣiro; GPUCommandBuffer lati wa ni ila fun ipaniyan lori GPU. Abajade le ṣee ṣe ni agbegbe ti o ni nkan ṣe pẹlu ọkan tabi diẹ ẹ sii awọn eroja kanfasi, tabi ni ilọsiwaju laisi iṣẹjade (fun apẹẹrẹ, nigba ṣiṣe awọn iṣẹ ṣiṣe iṣiro). Iyapa awọn ipele jẹ ki o rọrun lati ya awọn ẹda orisun ati awọn iṣẹ igbaradi sinu awọn oluṣakoso oriṣiriṣi ti o le ṣiṣẹ lori awọn okun oriṣiriṣi.

Iyatọ keji laarin WebGPU ati WebGL jẹ ọna ti o yatọ si mimu awọn ipinlẹ mu. WebGPU nfunni ni awọn nkan meji - GPURenderPipeline ati GPUComputePipeline, eyiti o gba ọ laaye lati ṣajọpọ awọn ipinlẹ oriṣiriṣi ti a ti ṣalaye tẹlẹ nipasẹ olupilẹṣẹ, eyiti o fun laaye ẹrọ aṣawakiri lati ma sọ ​​awọn orisun nu lori iṣẹ afikun, gẹgẹbi awọn atunto awọn shaders. Awọn ipinlẹ ti a ṣe atilẹyin pẹlu: awọn shaders, ifipamọ fatesi ati awọn ipilẹ abuda, awọn ipilẹ ẹgbẹ alalepo, idapọmọra, ijinle ati awọn ilana, ati awọn ọna kika igbejade ifiweranṣẹ.

Ẹya kẹta ti WebGPU ni a pe ni awoṣe abuda, ni pataki
reminiscent ti awọn oluşewadi kikojọpọ irinṣẹ bayi ni Vulkan.
Lati ṣe akojọpọ awọn orisun papọ, WebGPU n pese ohun elo GPUBindGroup kan, eyiti o le ni nkan ṣe pẹlu awọn nkan miiran ti o jọra fun lilo ninu awọn iboji lakoko kikọ awọn aṣẹ. Ṣiṣẹda iru awọn ẹgbẹ gba awakọ laaye lati ṣe awọn iṣe igbaradi pataki ni ilosiwaju, ati gba ẹrọ aṣawakiri laaye lati yi awọn asopọ awọn orisun laarin awọn ipe fa yiyara pupọ. Awọn ifilelẹ ti awọn ohun elo abuda le ti wa ni asọye tẹlẹ nipa lilo GPUBindGroupLayout ohun.

Firefox ni alẹ kọ ni bayi pẹlu atilẹyin WebGPU

Ni Firefox, lati mu WebGPU ṣiṣẹ ni nipa: konfigi, eto kan wa “dom.webgpu.enabled”. CanvasContext ṣiṣiṣẹ tun nilo kikojọ lati mu ṣiṣẹ WebRender ("gfx.webrender.all" ni nipa: konfigi), ti a kọ sinu ipata ati awọn iṣẹ oju-iwe ti njade akoonu si GPU. WebGPU imuse da lori koodu ise agbese
wgpu, ti a kọ ni Rust ati agbara lati ṣiṣẹ lori oke DX12, Vulkan ati Metal APIs lori Lainos, Android, Windows ati macOS (DX11 ati OpenGL ES 3.0 support jẹ tun ni idagbasoke). Ni afiwe, Google n ṣe agbekalẹ imuse miiran, eyiti o wa ninu Canary ẹka Chromium ati pe o ṣiṣẹ ni lilo asia “chrome://flags/#enable-unsafe-webgpu”, ṣugbọn titi di isisiyi o ṣiṣẹ nikan lori macOS ati Windows.

orisun: opennet.ru

Fi ọrọìwòye kun