Thandizo la WebGPU lidzayatsidwa mu Chrome

Google yalengeza kuphatikizidwa kwa chithandizo chosasinthika cha WebGPU graphics API ndi WGSL (WebGPU Shading Language) mu Chrome 113, yomwe ikuyenera kutulutsidwa pa Meyi 2. WebGPU imapereka mawonekedwe a mapulogalamu ofanana ndi Vulkan, Metal, ndi Direct3D 12 pochita ntchito za GPU-mbali monga kupereka ndi makompyuta, komanso amalola kugwiritsa ntchito chinenero cha shader kulemba mapulogalamu omwe amayendetsa mbali ya GPU. Kukhazikitsa kwa WebGPU kumangoyambitsidwa pa ChromeOS, macOS, ndi Windows builds. Kwa Linux ndi Android, chithandizo cha WebGPU chidzatsegulidwa pambuyo pake.

Kuphatikiza pa Chrome, chithandizo choyesera cha WebGPU chayesedwa kuyambira Epulo 2020 mu Firefox komanso kuyambira Novembala 2021 ku Safari. Kuti mutsegule WebGPU mu Firefox, muyenera kukhazikitsa mbendera za dom.webgpu.enabled ndi gfx.webgpu.force-enabled mu about:config. Palibe mapulani omwe angathandizire WebGPU mwachisawawa mu Firefox ndi Safari. Mapulogalamu a WebGPU opangidwira Firefox ndi Chrome amapezeka ngati malaibulale osiyana - Dawn (C++) ndi wgpu (Rust), omwe mungagwiritse ntchito kuphatikiza chithandizo cha WebGPU muzofunsira zanu. Ntchito ikuchitikanso kuti awonjezere thandizo la WebGPU ku malaibulale otchuka a JavaScript omwe mbadwa zawo amagwiritsa ntchito WebGL. Mwachitsanzo, chithandizo chonse cha WebGPU chalengezedwa kale ku Babylon.js, ndi thandizo laling'ono mu Three.js, PlayCanvas ndi TensorFlow.js.

Mwachidziwitso, WebGPU imasiyana ndi WebGL mofanana ndi momwe Vulkan graphics API imasiyanirana ndi OpenGL, koma WebGPU sinakhazikitsidwe pazithunzi za API, koma ndi gawo la chilengedwe chonse 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 sachita zoyipa kuposa mapulogalamu omwe amangogwiritsa ntchito Vulkan, Metal kapena Direct3D, koma osamangika pamapulatifomu. WebGPU imaperekanso zina zowonjezera pakuyika mapulogalamu azithunzi m'mawonekedwe omwe ali ndi intaneti kudzera mukupanga WebAssembly. Kuphatikiza pazithunzi 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