В Firefox kọ atilẹyin sipesifikesonu , 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 , и . Sipesifikesonu jẹ idagbasoke nipasẹ Mozilla, Google, Apple, Microsoft ati awọn ọmọ ẹgbẹ agbegbe ni , da nipa W3C agbari.
Ète pàtàkì WebGPU ni láti ṣẹ̀dá ìfọwọ́sowọ́pọ̀ sọ́fítíwè tí ó ní ààbò, tí ó rọrùn, tí ó ṣeé gbé kiri àti tí ó ní iṣẹ́ gíga fún lílo àwọn ìmọ̀-ẹ̀rọ àwòrán 3D àti àwọn agbára tí àwọn API àwòrán ètò òde òní pèsè, bíi Direct3D 12 nínú ìtàkùn Wẹ́ẹ̀bù. Windows, Irin ninu macOS àti Vulkan nínú LinuxNí ti èrò, WebGPU yàtọ̀ sí WebGL ní ọ̀nà kan náà tí Vulkan fi yàtọ̀ sí OpenGL. Kò dá lórí API àwòrán pàtó kan, ṣùgbọ́n ó jẹ́ ìpele gbogbogbòò kan tí ó sábà máa ń lo àwọn ìpìlẹ̀ ìpele kékeré kan náà tí a rí nínú Vulkan, Metal, àti 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 ṣẹ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.

Ni Firefox, lati mu WebGPU ṣiṣẹ ni nipa: konfigi, eto kan wa “dom.webgpu.enabled”. CanvasContext ṣiṣiṣẹ tun nilo kikojọ lati mu ṣiṣẹ ("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
, tí a kọ ní Rust àti pé ó lè ṣiṣẹ́ lórí DX12, Vulkan àti Metal APIs nínú Linux, Android, Windows и macOS (Àtìlẹ́yìn fún DX11 àti OpenGL ES 3.0 tún wà ní ìdàgbàsókè.) Google tún ń ṣe àgbékalẹ̀ ìmúṣẹ mìíràn, èyí tí ó wà nínu Chromium àti pé a ń lo àsíá “chrome://flags/#enable-unsafe-webgpu” láti ṣiṣẹ́, ṣùgbọ́n ó ń ṣiṣẹ́ nínú rẹ̀ nìkan macOS и Windows.
orisun: opennet.ru
