Chrome ichasanganisira WebGPU rutsigiro

Google yakazivisa kubatanidzwa kweiyo default rutsigiro rweWebGPU mifananidzo API uye WGSL (WebGPU Shading Mutauro) muChrome 113, iyo yakarongerwa kuburitswa muna Chivabvu 2. WebGPU inopa chinongedzo chechirongwa chakafanana neVulkan, Metal, uye Direct3D 12 yekuita mabasa eGPU-parutivi sekupa uye komputa, uye zvakare inobvumira kushandiswa kwemutauro we shader kunyora zvirongwa zvinomhanya kudivi reGPU. Kuitwa kweWebGPU kunotanga kugoneswa chete paChromeOS, macOS, uye Windows inovaka. Kune Linux uye Android, WebGPU rutsigiro ichaitwa pane imwe nguva inotevera.

Pamusoro peChrome, tsigiro yekuyedza yeWebGPU yakaedzwa kubva muna Kubvumbi 2020 muFirefox uye kubva muna Mbudzi 2021 muSafari. Kugonesa WebGPU muFirefox, unofanira kuseta iyo dom.webgpu.enabled uye gfx.webgpu.force-enabled mireza mukati about:config. Hapachina hurongwa hwekugonesa WebGPU nekukasira muFirefox neSafari. Kuitwa kweWebGPU kwakagadziridzwa Firefox neChrome kunowanikwa nenzira yemaraibhurari akasiyana - Dawn (C++) uye wgpu (Rust), iyo yaunogona kushandisa kubatanidza rutsigiro rweWebGPU mumashandisirwo ako. Basa ririkuenderera mberi rekuwedzera WebGPU rutsigiro kumaraibhurari eJavaScript ane mukurumbira anoshandisa WebGL. Semuenzaniso, rutsigiro rwakazara rweWebGPU rwakatoziviswa muBabylon.js, uye chikamu chetsigiro muThree.js, PlayCanvas uye TensorFlow.js.

Sezvineiwo, WebGPU inosiyana neWebGL nenzira yakafanana iyo Vulkan graphics API inosiyana neOpenGL, asi WebGPU haina kubva pane yakatarwa API yemifananidzo, asi idhizaini repasi rose rinoshandisa zvakafanana zvakaderera-level primitives inowanikwa muVulkan, Metal uye. Direct3D. WebGPU inopa JavaScript maapplication ane yakaderera-level kutonga pamusoro pesangano, kugadzirisa uye kuendesa mirairo kuGPU, kutonga zvine hukama zviwanikwa, ndangariro, buffers, manyorerwo zvinhu uye akaunganidzwa emifananidzo shaders. Iyi nzira inobvumidza iwe kuti uwane yepamusoro kuita kwemifananidzo maapplication nekudzikisa mutengo wepamusoro uye nekuwedzera kugona kwekushanda neGPU.

WebGPU inoita kuti zvikwanise kugadzira mapurojekiti akaomarara e3D eWebhu asingaite zvakanyanya kupfuura zvirongwa zvakamira zvinoshandisa Vulkan, Metal kana Direct3D zvakananga, asi zvisina kusungirirwa kumapuratifomu chaiwo. WebGPU inopawo humwe hunyanzvi hwekufambisa zvirongwa zvemifananidzo zvemukati mune fomu inogonesa webhu kuburikidza nekubatanidza muWebAssembly. Pamusoro peiyo 3D giraidhi, WebGPU inosanganisirawo masimba ane chekuita nekuburitsa kuverenga kuGPU uye kuita shaders.

Zvinhu zvakakosha zveWebGPU:

  • 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

Voeg