Chrome e tla kenyelletsa tšehetso ea WebGPU

Google e phatlalalitse ho kenyelletsoa ha tšehetso ea kamehla bakeng sa WebGPU graphics API le WGSL (WebGPU Shading Language) ho Chrome 113, e reretsoeng ho lokolloa ka la 2 Motšeanong. WebGPU e fana ka sebopeho sa lenaneo se ts'oanang le Vulkan, Metal, le Direct3D 12 bakeng sa ho etsa ts'ebetso ea lehlakore la GPU joalo ka ho fana le ho sebelisa komporo, hape e lumella ts'ebeliso ea puo ea shader ho ngola mananeo a tsamaeang ka lehlakoreng la GPU. Ts'ebetsong ea WebGPU qalong e tla sebelisoa feela ho ChromeOS, macOS, le Windows builds. Bakeng sa Linux le Android, tšehetso ea WebGPU e tla kengoa tšebetsong hamorao.

Ntle le Chrome, tšehetso ea liteko bakeng sa WebGPU e 'nile ea lekoa ho tloha ka Mmesa 2020 ho Firefox le ho tloha ka Pulungoana 2021 ho Safari. Ho nolofalletsa WebGPU ho Firefox, o lokela ho seta lifolakha tsa dom.webgpu.enabled le gfx.webgpu.force-enabled mabapi le:config. Ha ho na merero ea ho thusa WebGPU ka boiketsetso ho Firefox le Safari. Lisebelisoa tsa WebGPU tse ntlafalitsoeng bakeng sa Firefox le Chrome li fumaneha ka mokhoa oa lilaebrari tse arohaneng - Dawn (C++) le wgpu (Rust), tseo u ka li sebelisang ho kopanya tšehetso ea WebGPU lits'ebetsong tsa hau. Mosebetsi o ntse o tsoela pele ho kenya tšehetso ea WebGPU lilaebraring tse tsebahalang tsa JavaScript tse sebelisang WebGL ka tlhaho. Mohlala, tšehetso e felletseng ea WebGPU e se e phatlalalitsoe Babylona.js, le tšehetso e sa fellang ho Three.js, PlayCanvas le TensorFlow.js.

Ka mohopolo, WebGPU e fapana le WebGL ka tsela e tšoanang le eo Vulkan graphics API e fapaneng le OpenGL, empa WebGPU ha ea ipapisa le API ea litšoantšo, empa ke lera la bokahohle le sebelisang li-primitives tsa boemo bo tlase tse fumanehang ho Vulkan, Metal le. Direct3D. WebGPU e fana ka lits'ebetso tsa JavaScript ka taolo ea boemo bo tlase holim'a mokhatlo, ts'ebetso le phetisetso ea litaelo ho GPU, ho laola lisebelisoa tse amanang, mohopolo, li-buffers, lintho tse hlophisitsoeng le li-shader tsa litšoantšo tse hlophisitsoeng. Mokhoa ona o u lumella ho fihlela ts'ebetso e phahameng ea lits'ebetso tsa litšoantšo ka ho fokotsa litšenyehelo le ho eketsa katleho ea ho sebetsa le GPU.

WebGPU e etsa hore ho khonehe ho theha merero e rarahaneng ea 3D bakeng sa Websaete e sa sebetseng hampe ho feta mananeo a ikemetseng a sebelisang Vulkan, Metal kapa Direct3D ka ho toba, empa a sa tlameletsoe sethaleng se itseng. WebGPU e boetse e fana ka bokhoni bo eketsehileng bakeng sa ho tsamaisa mananeo a litšoantšo tsa tlhaho ka foromo e sebelisoang ke webo ka ho kopanya ho WebAssembly. Ntle le litšoantšo tsa 3D, WebGPU e boetse e kenyelletsa bokhoni bo amanang le ho theola lipalo ho GPU le ho etsa li-shader.

Lintlha tsa bohlokoa tsa WebGPU:

  • Tsamaiso e arohaneng ea lisebelisoa, mosebetsi oa ho itokisa le phetisetso ea litaelo ho GPU (ho WebGL ntho e le 'ngoe e ne e ikarabella bakeng sa ntho e' ngoe le e 'ngoe hang-hang). Ho fanoe ka maemo a mararo a arohaneng: GPUDevice bakeng sa ho theha lisebelisoa tse kang libopeho le li-buffers; GPUCommandEncoder bakeng sa ho kenya litaelo tsa motho ka mong, ho kenyelletsa le mekhahlelo ea ho fana le ho bala; GPUCommandBuffer e tla beoa moleng hore e sebelisoe ho GPU. Sephetho se ka fanoa sebakeng se amanang le ntho e le 'ngoe kapa tse ngata tsa canvas, kapa tsa sebetsoa ntle le tlhahiso (mohlala, ha ho etsoa mesebetsi ea komporo). Ho arola mekhahlelo ho etsa hore ho be bonolo ho arola tlhahiso ea lisebelisoa le ts'ebetso ea ho lokisa ho libapali tse fapaneng tse ka sebetsang ka likhoele tse fapaneng.
  • Mokhoa o fapaneng oa ho sebetsana le linaha. WebGPU e fana ka lintho tse peli - GPURenderPipeline le GPUComputePipeline, tse u lumellang hore u kopane le linaha tse fapa-fapaneng tse hlalositsoeng pele ke moqapi, e leng se lumellang sebapali hore se se ke sa senya lisebelisoa mosebetsing o eketsehileng, joalo ka ho khutlisetsa li-shaders. Maemo a tšehelitsoeng a kenyelletsa: li-shader, buffer ea vertex le libopeho tsa sebopeho, litlhophiso tsa lihlopha tse khomarelang, motsoako, botebo le lipaterone, le lifomate tsa tlhahiso ea morao-rao.
  • Moetso o tlamang joalo ka likarolo tsa lihlopha tsa lisebelisoa tsa Vulkan. Ho bokella lisebelisoa hammoho, WebGPU e fana ka ntho ea GPUBindGroup, e ka amahanngoa le lintho tse ling tse tšoanang bakeng sa ho sebelisoa li-shaders ha u ntse u ngola litaelo. Ho theha lihlopha tse joalo ho lumella mokhanni ho etsa liketso tse hlokahalang tsa ho itokisa esale pele, 'me ho lumella sebatli hore se fetole litlamo tsa lisebelisoa lipakeng tsa mehala ea ho hula kapele haholo. Sebopeho sa setlamo sa lisebelisoa se ka hlalosoa esale pele ho sebelisoa ntho ea GPUBindGroupLayout.

Source: opennet.ru

Eketsa ka tlhaloso