Hōʻike ʻo W3C i ke kikoo WebGPU maʻamau

Ua hoʻokuʻu ka W3C i nā kikoʻī mua o ka WebGPU a me ka WebGPU Shading Language (WGSL), e wehewehe ana i nā API no ka hoʻokō ʻana i nā hana GPU e like me ka rendering a me ka helu ʻana, a me kahi ʻōlelo shader no ke kākau ʻana i nā papahana e holo ana ma ka GPU. ʻano like me ka Vulkan, Metal a me Direct3D 12 API. Ua hoʻomākaukau ʻia nā kikoʻī e kahi hui hana i hoʻokomo ʻia nā ʻenekinia mai Mozilla, Google, Apple a me Microsoft.

Ma keʻano manaʻo, ʻokoʻa ka WebGPU mai WebGL ma ke ʻano like me ka ʻokoʻa o ka Vulkan graphics API mai OpenGL, akā ʻaʻole ia i hoʻokumu ʻia 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 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 ʻoi aku ka maikaʻi ma mua o nā polokalamu kūʻokoʻa e komo pololei 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