E ʻae ʻia ke kākoʻo WebGPU ma Chrome

Ua hoʻolaha ʻo Google i ka hoʻokomo ʻana i ke kākoʻo paʻamau no ka WebGPU kiʻi kiʻi API a me WGSL (WebGPU Shading Language) ma Chrome 113, i hoʻonohonoho ʻia no ka hoʻokuʻu ʻana ma Mei 2. Hāʻawi ʻo WebGPU i kahi polokalamu hoʻonohonoho like me Vulkan, Metal, a me Direct3D 12 no ka hana ʻana i nā hana ʻaoʻao GPU e like me ka hāʻawi ʻana a me ka hoʻopili ʻana, a hiki pū i ka hoʻohana ʻana i kahi ʻōlelo shader e kākau i nā papahana e holo ana ma ka ʻaoʻao GPU. E hoʻohana mua ʻia ka hoʻokō WebGPU ma ChromeOS, macOS, a me Windows kūkulu. No Linux a me Android, e hoʻāla ʻia ke kākoʻo WebGPU i kahi lā ma hope.

Ma kahi o Chrome, ua hoʻāʻo ʻia ke kākoʻo hoʻokolohua no WebGPU mai ʻApelila 2020 ma Firefox a mai Nowemapa 2021 ma Safari. I mea e hiki ai iā WebGPU ma Firefox, pono ʻoe e hoʻonoho i nā hae dom.webgpu.enabled a me gfx.webgpu.force-enabled ma about:config. ʻAʻohe hoʻolālā e hiki ai iā WebGPU ma ka paʻamau ma Firefox a me Safari. Loaʻa nā hoʻokō WebGPU i kūkulu ʻia no Firefox a me Chrome ma ke ʻano o nā hale waihona puke ʻokoʻa - Dawn (C++) a me wgpu (Rust), hiki iā ʻoe ke hoʻohana e hoʻohui i ke kākoʻo WebGPU i kāu mau noi. Ke hoʻomaka nei ka hana e hoʻohui i ke kākoʻo WebGPU i nā hale waihona puke JavaScript kaulana i hoʻohana maoli i ka WebGL. No ka laʻana, ua hoʻolaha mua ʻia ke kākoʻo piha no WebGPU ma Babylon.js, a me ke kākoʻo hapa ma Three.js, PlayCanvas a me TensorFlow.js.

Ma keʻano manaʻo, ʻokoʻa ka WebGPU mai WebGL ma ke ʻano like me ka Vulkan graphics API ʻokoʻa mai OpenGL, akā ʻaʻole i hoʻokumu ʻia ʻo WebGPU ma kahi API kiʻi kikoʻī, akā he papa honua e hoʻohana ana i nā primitives haʻahaʻa haʻahaʻa i loaʻa ma Vulkan, Metal a me. Direct3D. Hāʻawi ʻo WebGPU i nā noi JavaScript me ka mana haʻahaʻa haʻahaʻa ma luna o ka hui, ka hoʻoili ʻana a me ka hoʻouna ʻana i nā kauoha i ka GPU, ka hoʻokele ʻana i nā kumuwaiwai pili, ka hoʻomanaʻo, nā pale, nā mea kikokikona a me nā shaders kiʻi i hui ʻia. ʻO kēia ala e hiki ai iā ʻoe ke hoʻokō i ka hana kiʻekiʻe no nā noi kiʻi ma o ka hōʻemi ʻana i nā kumukūʻai overhead a me ka hoʻonui ʻana i ka pono o ka hana me ka GPU.

Hiki i ka WebGPU ke hana i nā papahana 3D paʻakikī no ka Pūnaewele i hana ʻoi aku ka maikaʻi ma mua o nā polokalamu kūʻokoʻa e hoʻohana pono ana iā Vulkan, Metal a i ʻole Direct3D, akā ʻaʻole pili i nā kahua kikoʻī. Hāʻawi pū ʻo WebGPU i nā mana hou aʻe no ka lawe ʻana i nā polokalamu kiʻi kiʻi maoli i loko o kahi palapala hoʻohana pūnaewele ma o ka hoʻopili ʻana i WebAssembly. Ma kahi o nā kiʻi 3D, loaʻa pū ka WebGPU i nā mana e pili ana i ka hoʻoiho ʻana i nā helu i ka GPU a me ka hoʻokō ʻana i nā shaders.

Nā hiʻohiʻona nui o WebGPU:

  • Hoʻokaʻawale ka hoʻokele waiwai, hana hoʻomākaukau a me ka hoʻouna ʻana i nā kauoha i ka GPU (ma WebGL hoʻokahi mea i kuleana no nā mea āpau i ka manawa hoʻokahi). Hāʻawi ʻia ʻekolu mau ʻokoʻa ʻokoʻa: GPUDevice no ka hana ʻana i nā kumuwaiwai e like me nā mea leʻaleʻa a me nā pale; GPUCommandEncoder no ka hoʻopaʻa ʻana i nā kauoha pākahi, me nā pae hoʻolilo a me ka helu ʻana; E hoʻopaʻa ʻia ʻo GPUCommandBuffer no ka hoʻokō ʻana ma ka GPU. Hiki ke hāʻawi ʻia ka hopena ma kahi e pili ana i hoʻokahi a ʻoi aku paha nā mea canvas, a i ʻole e hana ʻia me ka ʻole o ka hoʻopuka (e laʻa, i ka wā e holo ana i nā hana helu). ʻO ka hoʻokaʻawale ʻana i nā ʻanuʻu e maʻalahi ka hoʻokaʻawale ʻana i ka hana ʻana i nā kumuwaiwai a me nā hana hoʻomākaukau i nā mea lawelawe like ʻole e hiki ke holo ma nā pae like ʻole.
  • ʻO kahi ala ʻē aʻe i ka hana ʻana i nā mokuʻāina. Hāʻawi ʻo WebGPU i ʻelua mau mea - GPURenderPipeline a me GPUComputePipeline, e ʻae iā ʻoe e hoʻohui i nā mokuʻāina like ʻole i wehewehe mua ʻia e ka mea hoʻomohala, e hiki ai i ka polokalamu ke hoʻopau i nā kumuwaiwai ma nā hana hou, e like me ka hoʻopili hou ʻana i nā shaders. Aia nā mokuʻāina i kākoʻo ʻia: shaders, vertex buffer a me nā hoʻonohonoho ʻano, nā hoʻonohonoho pūʻulu paʻa, ka hui ʻana, ka hohonu a me nā ʻano, a me nā ʻano hoʻopuka puka hope.
  • He kumu hoʻohālike paʻa e like me nā hiʻohiʻona pūʻulu waiwai a Vulkan. No ka hui pū ʻana i nā kumuwaiwai, hāʻawi ʻo WebGPU i kahi mea GPUBindGroup, hiki ke hoʻopili ʻia me nā mea like ʻē aʻe no ka hoʻohana ʻana i nā shaders i ke kākau ʻana i nā kauoha. ʻO ka hana ʻana i ia mau pūʻulu e hiki ai i ka mea hoʻokele ke hana i nā hana hoʻomākaukau e pono ai ma mua, a hiki i ka polokalamu kele ke hoʻololi i nā pilina waiwai ma waena o nā kelepona huki ʻoi aku ka wikiwiki. Hiki ke koho mua ʻia ka hoʻolālā o nā mea hoʻopaʻa waiwai me ka hoʻohana ʻana i ka mea GPUBindGroupLayout.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka