Mozilla yasarudza kugonesa rutsigiro rweWebGPU API neWGSL (WebGPU Shading Language) muFirefox. Yepuratifomu iyi Windows Rutsigiro rweWebGPU ruchashandiswa zvachose muFirefox 141, yakarongerwa Chikunguru 22. Rutsigiro rweWebGPU rwunorongwa kuti rwushandiswe mukuvaka kwemwedzi inotevera: Linux и macOS, uye mushure mechinguva mushanduro yepuratifomu AndroidKuti ugonese WebGPU nemaoko, unogona kushandisa ma "dom.webgpu.enabled" uye "gfx.webrender.all" parameters dziri papeji re about:config.
MuChrome, WebGPU rutsigiro rwakapihwa nekusarudzika mushanduro 113, yakabudiswa muna Chivabvu 2023. MuSafari, WebGPU tsigiro inorongwa kugoneswa nekusarudzika kudonha uku (rutsigiro rwekuyedza rwakavepo kubva munaNovember 2021). MuFirefox, yekuyedza WebGPU tsigiro yanga iripo kubva 2020, asi yakagoneswa chete nekusarudzika mukuvakwa kwehusiku kweFirefox. Firefox's WebGPU kuita yakavakirwa paWGPU purojekiti kodhi, yakanyorwa muRust uye inokwanisa kumhanya pamusoro peDirect3D 12, Vulkan, OpenGL, uye Metal graphics APIs.
WebGPU inopa yakafanana API kuVulkan, Metal, uye Direct3D 12 yekuita mashandiro kudivi reGPU. Pamusoro peiyo 3D mifananidzo, WebGPU inovharawo hunyanzvi hune chekuita nekuburitsa kuverenga kudivi reGPU uye kuita shaders. Sezvineiwo, WebGPU inosiyana kubva kune yekare WebGL kududzirwa nenzira yakafanana iyo Vulkan mifananidzo API inosiyana neOpenGL. Panguva imwecheteyo, WebGPU haina kubva pane yakatarwa API, asi inzvimbo yepasirese inoshandisa yakafanana yakaderera-level primitives inowanikwa muVulkan, Metal, uye Direct3D.
WebGPU inogonesa JavaScript zvikumbiro kudzora sangano, kugadzirisa, uye kuendesa mirairo kuGPU, uye kutonga zviwanikwa zvakabatana, ndangariro, mabuffers, mameseji zvinhu, uye akaunganidzwa emifananidzo shaders. Iyi nzira inogonesa kuita kwepamusoro kwemagraphic application nekudzikisa kumusoro uye kuwedzera kugona kwekushanda neGPU.
NeWebGPU, unogona kugadzira chikuva-agnostic, yakaoma 3D mapurojekiti anoita pamwe chete nemapurogiramu akazvimirira anoshandisa zvakananga Vulkan, Metal, kana Direct3D. WebGPU inopawo humwe humwe hunyanzvi hwekufambisa zvirongwa zvemifananidzo kune fomu rinogona kumhanya mumabhurawuza, nekuda kwekubatanidza kuWebAssembly.
Akakosha maficha eWebGPU uye mutsauko kubva kuWebGL:
- Kupatsanura manejimendi ezviwanikwa, basa rekugadzirira uye kuendesa mirairo kuGPU (muWebGL chinhu chimwe chaive chekuita nezvese kamwechete). Matatu akapatsanurwa mamiriro akapihwa: GPUDevice yekugadzira zviwanikwa zvakaita semavara uye buffers; GPUCommandEncoder yekukodha mirairo yega, kusanganisira kupa uye computation matanho; GPUCommandBuffer ichaiswa mumutsara kuti iitwe paGPU. Mhedzisiro yacho inogona kupihwa munzvimbo yakabatana nechinhu chimwe kana anopfuura canvas, kana kugadziriswa pasina kuburitsa (semuenzaniso, paunenge uchimhanyisa compute mabasa). Kupatsanura nhanho kunoita kuti zvive nyore kuparadzanisa kugadzirwa kwezviwanikwa uye magadzirirwo ekugadzirira kuva vabati vakasiyana vanogona kumhanya pashinda dzakasiyana.
- Imwe nzira yakasiyana yekugadzirisa nyika. WebGPU inopa zvinhu zviviri - GPURenderPipeline uye GPUComputePipeline, iyo inokutendera kuti ubatanidze nyika dzakasiyana-siyana dzakafanotsanangurwa nemugadziri, izvo zvinobvumira bhurawuza kuti isatambise zviwanikwa pane mamwe mabasa, akadai sekudzorera shaders. Matunhu anotsigirwa anosanganisira: shaders, vertex buffer uye hunhu marongero, anonamira emapoka marongero, kusanganisa, kudzika uye mapatani, uye post-render zvinobuda mafomati.
- Modhi inosunga yakafanana neiyo Vulkan's resource grouping features. Kuunganidza zviwanikwa pamwechete, WebGPU inopa GPUBindGroup chinhu, chinogona kubatanidzwa nezvimwe zvinhu zvakafanana zvekushandisa mumumvuri uchinyora mirairo. Kugadzira mapoka akadaro kunobvumira mutyairi kuti aite anodiwa ekugadzirira zviito zvisati zvaitika, uye inobvumira bhurawuza kuti ichinje zvisungo zvinosungirwa pakati pekudhirowa mafoni nekukurumidza. Kurongeka kwezvisungo zvinosungirwa zvinogona kufanotsanangurwa uchishandisa GPUBindGroupLayout chinhu.
Source: opennet.ru
