Mehaho ea bosiu ea Firefox bosiu e kenyelletsa tšehetso ea WebGPU

В bosiu Firefox e hahiloe e hlahile tšehetso e tobileng WebGPU, e fanang ka sebopeho sa lenaneo bakeng sa ts'ebetso ea litšoantšo tsa 3D le komporo ea lehlakore la GPU, ka mokhoa o ts'oanang le API. foqohang seretse se chesang, Metal и Ka ho toba3D 12. Litlhaloso li ntse li ntlafatsoa ke Mozilla, Google, Apple, Microsoft le litho tsa sechaba ho sehlopha se sebetsange entsoeng ke W3C.

Sepheo sa mantlha sa WebGPU ke ho fana ka sebopeho se sireletsehileng, se bonolo sa basebelisi, se nkehang habonolo, le se sebetsang hantle bakeng sa sethala sa Marang-rang ho sebelisa theknoloji ea litšoantšo tsa 3D le bokhoni bo fanoeng ke li-API tsa sejoale-joale tsa litšoantšo, joalo ka Direct3D 12 ho Windows, Metal. ho macOS, le Vulkan ho Linux. Ka mohopolo, WebGPU e fapana le WebGL ka tsela e ts'oanang le eo Vulkan e fapaneng le OpenGL, 'me ka nako e ts'oanang ha e ea ipapisa le API ea litšoantšo, empa ke lera la bokahohle leo ka kakaretso le sebelisang li-primitives tsa boemo bo tlase tse fumanehang 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, e laola lisebelisoa tse amanang, mohopolo, li-buffers, lintho tse hlophisitsoeng, le li-shader tse hlophisitsoeng tsa litšoantšo. 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 fihlellang ka ho toba Vulkan, Metal kapa Direct3D, empa a sa tlameletsoe sethaleng se itseng. WebGPU e boetse e fana ka bokhoni bo eketsehileng ha o kenya mananeo a litšoantšo tsa tlhaho ka mokhoa o sebelisoang ke websaete ka tšebeliso ea theknoloji ea WebAssembly. Ntle le litšoantšo tsa 3D, WebGPU e boetse e akaretsa bokhoni bo amanang le ho theola lipalo ho GPU le ho tšehetsa nts'etsopele ea shader. Shaders e ka 'na eaba E entsoe ka Puo ea Shading ea WebGPU kapa e hlalositsoe ka sebopeho sa SPIR-V se mahareng, ebe e fetoleloa ka lipuo tse shader tse tšehelitsoeng ke bakhanni ba hajoale.

WebGPU e sebelisa taolo e arohaneng ea lisebelisoa, mosebetsi oa boitokisetso, le phetiso 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 fapaneng:
GPUDevice bakeng sa ho theha lisebelisoa tse kang masela 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.

Phapang ea bobeli pakeng tsa WebGPU le WebGL ke 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.

Karolo ea boraro ea WebGPU e bitsoa mohlala o tlamang, haholo
re hopotsa lisebelisoa tsa lihlopha tsa lisebelisoa tse teng 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.

Mehaho ea bosiu ea Firefox bosiu e kenyelletsa tšehetso ea WebGPU

Ho Firefox, ho nolofalletsa WebGPU mabapi le: config, ho na le tlhophiso "dom.webgpu.enabled". Tlhahiso ea CanvasContext e boetse e hloka hore mokhoa oa ho kopanya o lumelletsoe WebRender (“gfx.webrender.all” in about:config), e ngotsoeng ka Rust le ho ntša litaba tsa leqephe tse fanang ka tšebetso ho GPU. Ts'ebetso ea WebGPU e ipapisitse le khoutu ea projeke
wgpu, e ngotsoeng ka Rust le e khonang ho sebetsa ka holim'a DX12, Vulkan le Metal APIs ho Linux, Android, Windows le macOS (Tsehetso ea DX11 le OpenGL ES 3.0 le eona e ntse e tsoela pele). Ka ho ts'oana, Google e nts'etsapele ts'ebetsong e 'ngoe, e fumanehang ho Lekala la Canary Chromium 'me e lumelloa ho sebelisa folakha ea "chrome://flags/#enable-unsafe-webgpu", empa ho fihlela joale e sebetsa feela ho macOS le Windows.

Source: opennet.ru

Eketsa ka tlhaloso