W3C iwulula zolemba za WebGPU

W3C yatulutsa zolemba zoyambirira za WebGPU ndi WebGPU Shading Language (WGSL), zomwe zimatanthauzira ma API ochita ntchito za GPU monga kupereka ndi makompyuta, komanso chilankhulo cha shader cholembera mapulogalamu omwe amayenda pa GPU. mwamalingaliro ofanana ndi Vulkan, Metal ndi Direct3D APIs 12. Zofotokozerazo zinakonzedwa ndi gulu logwira ntchito lomwe linaphatikizapo mainjiniya ochokera ku Mozilla, Google, Apple ndi Microsoft.

Mwachidziwitso, WebGPU imasiyana ndi WebGL mofanana ndi momwe Vulkan graphics API imasiyanirana ndi OpenGL, koma sizochokera pazithunzi za API, koma ndi gulu lapadziko lonse lapansi lomwe limagwiritsa ntchito zoyambira zotsika zomwe zimapezeka mu Vulkan, Metal ndi Vulkan. Direct3D. WebGPU imapereka mapulogalamu a JavaScript okhala ndi mphamvu zotsika pagulu, kukonza ndi kutumiza malamulo ku GPU, kuyang'anira zinthu zomwe zimagwirizana, kukumbukira, zosungira, zinthu zamapangidwe ndi zojambula zojambulidwa. Njirayi imakuthandizani kuti mukwaniritse magwiridwe antchito apamwamba pamapulogalamu ojambulira pochepetsa mtengo wapamwamba komanso kukulitsa luso logwira ntchito ndi GPU.

WebGPU imapangitsa kuti pakhale mapulojekiti ovuta a 3D a Webusaiti omwe sagwira ntchito moyipa kuposa mapulogalamu odziyimira okha omwe amapeza mwachindunji Vulkan, Metal kapena Direct3D, koma osamangika pamapulatifomu enieni. WebGPU imaperekanso zina zowonjezera pakuyika mapulogalamu azithunzi mu fomu yolumikizidwa ndi intaneti kudzera pakupanga WebAssembly. Kuphatikiza pa zithunzi za 3D, WebGPU imaphatikizaponso kuthekera kokhudzana ndi kutsitsa kuwerengera ku GPU ndikuchita shaders.

Zofunikira za WebGPU:

  • Kasamalidwe kosiyana ka zinthu, ntchito yokonzekera ndi kutumiza malamulo ku GPU (mu WebGL chinthu chimodzi chinali ndi udindo pa chilichonse nthawi imodzi). Magawo atatu osiyana amaperekedwa: GPUDevice popanga zinthu monga mawonekedwe ndi mabafa; GPUCommandEncoder pakusunga malamulo apaokha, kuphatikiza magawo operekera ndi kuwerengera; GPUCommandBuffer kuti ayimilire pamzere kuti aphedwe pa GPU. Zotsatira zake zitha kuperekedwa m'dera lomwe limalumikizidwa ndi chinthu chimodzi kapena zingapo za canvas, kapena kukonzedwa popanda kutulutsa (mwachitsanzo, mukamagwira ntchito zowerengera). Kulekanitsa masitepe kumapangitsa kuti zikhale zosavuta kulekanitsa ntchito zopangira zida ndikukonzekera kukhala zogwirira ntchito zosiyanasiyana zomwe zimatha kuyenda pazingwe zosiyanasiyana.
  • Njira yosiyana yopangira mayiko. WebGPU imapereka zinthu ziwiri - GPURenderPipeline ndi GPUComputePipeline, zomwe zimakulolani kuti muphatikize mayiko osiyanasiyana omwe atchulidwa kale ndi wopanga mapulogalamu, omwe amalola osatsegula kuti asawononge chuma pa ntchito yowonjezera, monga kubwezera shaders. Maiko othandizidwa ndi awa: shaders, vertex buffer ndi mawonekedwe ake, masanjidwe amagulu omata, kuphatikiza, kuya ndi mapatani, ndi mawonekedwe otulutsa pambuyo popereka.
  • Choyimira chomangirira chofanana ndi mawonekedwe a Vulkan. Kuti muphatikize zinthu pamodzi, WebGPU imapereka chinthu cha GPUBindGroup, chomwe chitha kulumikizidwa ndi zinthu zina zofananira kuti zigwiritsidwe ntchito mumithunzi polemba malamulo. Kupanga magulu oterowo kumalola dalaivala kuchita zofunikira zokonzekera pasadakhale, ndipo amalola msakatuli kuti asinthe zomangira pakati pa ma foni ojambulira mwachangu kwambiri. Mapangidwe a zomangira zothandizira akhoza kufotokozedwatu pogwiritsa ntchito chinthu cha GPUBindGroupLayout.

Source: opennet.ru

Kuwonjezera ndemanga