В
ʻO ka pahuhopu nui o WebGPU, ʻo ia ka hāʻawi ʻana i kahi hoʻonohonoho hoʻonohonoho paʻa, hoʻohana ʻoluʻolu, lawe lima, a me ka hana kiʻekiʻe no ka pūnaewele pūnaewele e hoʻohana i nā ʻenehana kiʻi 3D a me nā mana i hāʻawi ʻia e nā API kiʻi ʻōnaehana hou, e like me Direct3D 12 ma Windows, Metal. ma macOS, a me Vulkan ma Linux. ʻO ka manaʻo, ʻokoʻa ka WebGPU mai WebGL ma ke ʻano like me ka ʻokoʻa o Vulkan mai OpenGL, a i ka manawa like ʻaʻole ia i hoʻokumu ʻia ma kahi API kiʻi kikoʻī, akā he papa honua e hoʻohana maʻamau 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ī piha no ka Pūnaewele i ʻoi aku ka maikaʻi ma mua o nā polokalamu kūʻokoʻa e komo pono iā Vulkan, Metal a i ʻole Direct3D, akā ʻaʻole pili i nā kahua kikoʻī. Hāʻawi pū ʻo WebGPU i nā mana hou i ka wā e lawe ai i nā polokalamu kiʻi ʻōiwi i loko o kahi palapala i hoʻohana ʻia ma o ka hoʻohana ʻana i ka ʻenehana WebAssembly. Ma waho aʻe o nā kiʻi 3D, uhi pū ʻo WebGPU i nā hiki e pili ana i ka hoʻoiho ʻana i nā helu helu i ka GPU a me ke kākoʻo ʻana i ka hoʻomohala ʻana i ka shader. Nā Shaders
Hoʻohana ʻo WebGPU i ka hoʻokele kaʻawale o nā kumuwaiwai, 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 pōʻaiapili ʻokoʻa:
GPUDevice no ka hoʻokumu ʻana i nā kumuwaiwai e like me nā ʻano 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 hana ʻia me ka ʻole o ka hoʻopuka (no ka laʻana, ke holo nei 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 ka lua o ka ʻokoʻa ma waena o WebGPU a me WebGL he ala ʻokoʻa i ka lawelawe ʻ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.
ʻO ke kolu o ka hiʻohiʻona o WebGPU i kapa ʻia ʻo ka hoʻohālike paʻa, ka hapa nui
e hoʻomanaʻo ana i nā mea hana pūʻulu waiwai i loaʻa ma 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.
Ma Firefox, e hiki ai iā WebGPU ma kahi: config, aia kahi hoʻonohonoho "dom.webgpu.enabled". Pono ka hana ʻana o CanvasContext i ka haku mele ʻana
Source: opennet.ru