Ukusekelwa kweWebGPU kwengezwe ekwakhiweni kwasebusuku kweFirefox

В ebusuku IFirefox iyakha kwavela ukusekela imininingwane I-WebGPU, ehlinzeka ngohlelo olubonakalayo lokucutshungulwa kwezithombe ze-3D kanye nekhompuyutha eseceleni ye-GPU, ngokufana ngokwengqondo ne-API intabamlilo, Metal и I-Direct3D 12. Imininingwane ithuthukiswa yi-Mozilla, Google, Apple, Microsoft kanye namalungu omphakathi ku iqembu elisebenzayo, edalwe inhlangano ye-W3C.

Umgomo oyinhloko weWebGPU ukuhlinzeka ngesixhumi esibonakalayo sezinhlelo esivikelekile, esisebenziseka kalula, esiphathekayo, nesisebenza kahle kakhulu seplathifomu Yewebhu ukuze kuthuthukiswe ubuchwepheshe bezithombe ze-3D namakhono ahlinzekwa ama-API ezithombe zesistimu yesimanje, njenge-Direct3D 12 ku-Windows, Metal. ku-macOS, kanye neVulkan ku-Linux. Ngokucatshangwayo, i-WebGPU ihluke ku-WebGL ngendlela efanayo nehluke ngayo i-Vulkan ku-OpenGL, futhi ngesikhathi esifanayo ayisekelwe ku-API yezithombe ezithile, kodwa iwungqimba lomhlaba wonke oluvame ukusebenzisa ama-primitives asezingeni eliphansi afanayo atholakala ku-Vulkan, I-Metal ne-Direct3D.

I-WebGPU inikeza izinhlelo zokusebenza ze-JavaScript ngokulawula okuphansi kwenhlangano, ukucutshungulwa, nokudluliselwa kwemiyalo ku-GPU, iphatha izinsiza ezihlotshaniswayo, inkumbulo, amabhafa, izinto zokuthungwa, nezithunzi zezithombe ezihlanganisiwe. Le ndlela ikuvumela ukuthi ufinyelele ukusebenza okuphezulu kwezinhlelo zokusebenza zezithombe ngokunciphisa izindleko eziphezulu kanye nokukhulisa ukusebenza kahle kokusebenza ne-GPU.

I-WebGPU yenza kube nokwenzeka ukudala amaphrojekthi agcwele agcwele e-3D eWebhu angasebenzi kabi kunezinhlelo ezizimele ezifinyelela ngokuqondile ku-Vulkan, Metal noma i-Direct3D, kodwa ezingaboshelwe kumapulatifomu athile. I-WebGPU futhi ihlinzeka ngamakhono engeziwe lapho ithutha izinhlelo zezithombe zomdabu kufomu elinikwe amandla iwebhu ngokusebenzisa ubuchwepheshe be-WebAssembly. Ngokungeziwe kumahluzo we-3D, i-WebGPU iphinde ihlanganise amakhono ahlobene nokulayisha izibalo ku-GPU nokusekela ukuthuthukiswa kwe-shader. Ama-Shaders kungenzeka kudalwe ngolimi Lwe-WebGPU Shading noma kucaciswe ngefomethi ye-SPIR-V ephakathi nendawo, bese ihunyushwa ezilimini ze-shader ezisekelwa abashayeli bamanje.

I-WebGPU isebenzisa ukuphathwa okuhlukene kwezinsiza, umsebenzi wokulungiselela, kanye nokudluliselwa kwemiyalo ku-GPU (ku-WebGL, into eyodwa yayinesibopho sayo yonke into ngesikhathi esisodwa). Kunikezwe izimo ezintathu ezihlukene:
I-GPUDevice yokudala izinsiza ezifana nokuthungwa namabhafa; I-GPUCommandEncoder yombhalo wekhodi imiyalo ngayinye, okuhlanganisa ukunikeza nezigaba zokubala; I-GPUCommandBuffer izofakwa kulayini ukuze isetshenziswe ku-GPU. Umphumela unganikezwa endaweni ehlotshaniswa ne-elementi yekhanvasi eyodwa noma ngaphezulu, noma kusetshenzwe ngaphandle kokuphumayo (isibonelo, uma usebenzisa imisebenzi yekhompyutha). Ukwehlukanisa izigaba kwenza kube lula ukuhlukanisa ukwakhiwa kwensiza kanye nemisebenzi yokulungiselela kube izibambi ezihlukene ezingasebenza emicu ehlukene.

Umehluko wesibili phakathi kweWebGPU neWebGL yindlela ehlukile yokuphatha izifunda. I-WebGPU inikezela ngezinto ezimbili - i-GPURenderPipeline kanye ne-GPUComputePipeline, ekuvumela ukuthi uhlanganise izifunda ezahlukahlukene ezichazwe ngaphambilini umthuthukisi, okuvumela isiphequluli ukuthi singamoshi izinsiza emsebenzini owengeziwe, njengama-shader okubuyisela. Izimo ezisekelwayo zifaka: imithunzi, i-vertex buffer nezakhiwo zesibaluli, izakhiwo zeqembu ezinamathelayo, ukuhlanganisa, ukujula namaphethini, namafomethi okukhiphayo ngemva kokunikezwa.

Isici sesithathu seWebGPU sibizwa ngokuthi imodeli ebophezelayo, ikakhulukazi
okusikhumbuza amathuluzi okuqoqa izinsiza akhona ku-Vulkan.
Ukuqoqa izinsiza ndawonye, ​​i-WebGPU ihlinzeka ngento ye-GPUBindGroup, engahlotshaniswa nezinye izinto ezifanayo ukuze zisetshenziswe kumashadi ngenkathi ubhala imiyalo. Ukudala amaqembu anjalo kuvumela umshayeli ukuthi enze izenzo zokulungiselela ezidingekayo kusengaphambili, futhi kuvumela isiphequluli ukuthi siguqule ukubophezela kwezinsiza phakathi kwezingcingo zokudonsa ngokushesha okukhulu. Isakhiwo sokubophezela kwensiza singachazwa kusengaphambili kusetshenziswa into ye-GPUBindGroupLayout.

Ukusekelwa kweWebGPU kwengezwe ekwakhiweni kwasebusuku kweFirefox

KuFirefox, isilungiselelo esithi “dom.webgpu.enabled” sinikezwa mayelana nokuthi:config ukuze kusebenze i-WebGPU. Ukunikezwa kwe-CanvasContext nakho kudinga ukuhlanganisa ukuthi kunikwe amandla I-WebRender (“gfx.webrender.all” kokuthi:config), ebhalwe ngeRust futhi ikhipha okuqukethwe kwekhasi okuhlinzeka ngemisebenzi ku-GPU. Ukuqaliswa kwe-WebGPU kusekelwe kukhodi yephrojekthi
wgpu, ebhalwe nge-Rust futhi ekwazi ukusebenza phezu kwe-DX12, i-Vulkan ne-Metal APIs ku-Linux, i-Android, i-Windows ne-macOS (ukusekelwa kwe-DX11 ne-OpenGL ES 3.0 nakho kuyathuthukiswa). Ngokuhambisanayo, i-Google ithuthukisa okunye ukusebenzisa, okutholakala ku- Igatsha laseCanary I-Chromium futhi inikwe amandla kusetshenziswa ifulegi elithi “chrome://flags/#enable-unsafe-webgpu”, kodwa kuze kube manje isebenza kuphela ku-macOS ne-Windows.

Source: opennet.ru

Engeza amazwana