Mozilla yaganiza zoyambitsa chithandizo cha WebGPU API ndi WGSL (WebGPU Shading Language) mu Firefox. Pa nsanjayi Windows Thandizo la WebGPU lidzayatsidwa mwachisawawa mu Firefox 141, yomwe ikukonzekera pa Julayi 22. Thandizo la WebGPU likukonzekera kuyatsidwa mu zomangamanga kwa miyezi yotsatira: Linux и macOS, ndipo patapita kanthawi mu mtundu wa nsanja AndroidKuti muyatse WebGPU pamanja, mungagwiritse ntchito magawo a "dom.webgpu.enabled" ndi "gfx.webrender.all" patsamba la about:config.
Mu Chrome, chithandizo cha WebGPU chinaperekedwa mwachisawawa mu mtundu wa 113, wotulutsidwa mu May 2023. Mu Safari, chithandizo cha WebGPU chikukonzekera kuti chithandizidwe mwachisawawa kugwa uku (thandizo loyesera lakhala likupezeka kuyambira November 2021). Mu Firefox, chithandizo choyesera cha WebGPU chakhalapo kuyambira 2020, koma chimangothandizidwa mwachisawawa pakumanga kwa Firefox usiku. Kukhazikitsa kwa Firefox WebGPU kumatengera khodi ya projekiti ya WGPU, yolembedwa mu Rust ndipo imatha kuthamanga pamwamba pa Direct3D 12, Vulkan, OpenGL, ndi Metal graphics APIs.
WebGPU imapereka API yofanana ndi Vulkan, Metal, ndi Direct3D 12 pochita ntchito kumbali ya GPU. Kuphatikiza pa zithunzi za 3D, WebGPU imaphatikizanso kuthekera kokhudzana ndi kutsitsa mawerengedwe ku mbali ya GPU ndikuchita shaders. Mwachidziwitso, WebGPU imasiyana ndi mawonekedwe akale a WebGL mofanana ndi momwe API ya zithunzi za Vulkan imasiyana ndi OpenGL. Panthawi imodzimodziyo, WebGPU sichichokera pazithunzi za API, koma ndizosanjikiza zapadziko lonse zomwe zimagwiritsa ntchito zoyambira zochepa zomwe zimapezeka ku Vulkan, Metal, ndi Direct3D.
WebGPU imathandizira mapulogalamu a JavaScript kuwongolera kayendetsedwe kake, kukonza, ndi kutumiza malamulo ku GPU, ndikuwongolera zothandizira, kukumbukira, zosungira, zinthu zamkati, ndi zojambula zojambulidwa. Njirayi imathandizira magwiridwe antchito apamwamba azithunzi pochepetsa kupitilira apo ndikuwonjezera mphamvu yogwira ntchito ndi GPU.
Ndi WebGPU, mutha kupanga mapulojekiti a agnostic, ovuta a 3D omwe amachita komanso mapulogalamu odziyimira okha omwe amagwiritsa ntchito Vulkan, Metal, kapena Direct3D mwachindunji. WebGPU imaperekanso kuthekera kowonjezera pakuyika mapulogalamu azithunzi m'mawonekedwe omwe amatha kuyenda mu asakatuli, chifukwa chophatikiza ku WebAssembly.
Zofunikira za WebGPU ndi kusiyana kwa WebGL:
- 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
