Дастгирии WebGPU дар Chrome фаъол карда мешавад

Google дастгирии пешфарзро барои API графикии WebGPU ва WebGPU Shading Language (WGSL) дар Chrome 113 эълон кард, ки 2 май ба нақша гирифта шудааст. WebGPU API-и шабеҳи Vulkan, Metal ва Direct3D 12-ро барои иҷрои амалҳои паҳлӯи GPU, ба монанди визуалӣ ва ҳисобкунӣ таъмин мекунад ва инчунин ба шумо имкон медиҳад, ки забони shader барои навиштани барномаҳои тарафи GPU-ро истифода баред. Татбиқи WebGPU танҳо дар аввал дар сохтани ChromeOS, macOS ва Windows фаъол карда мешавад. Барои Linux ва Android, дастгирии WebGPU дертар фаъол карда мешавад.

Илова ба Chrome, дастгирии таҷрибавии WebGPU аз моҳи апрели соли 2020 дар Firefox ва аз ноябри соли 2021 дар Safari озмуда шудааст. Барои фаъол кардани WebGPU дар Firefox, парчамҳои dom.webgpu.enabled ва gfx.webgpu.force-ро дар about:config насб кунед. Ҳанӯз нақшаи фаъол кардани WebGPU-ро ба таври нобаёнӣ дар Firefox ва Safari вуҷуд надорад. Амалисозии WebGPU, ки барои Firefox ва Chrome таҳия шудааст, дар шакли китобхонаҳои алоҳида дастрас мебошанд - Dawn (C++) ва wgpu (Rust), ки шумо метавонед онҳоро барои ҳамгироӣ кардани дастгирии WebGPU ба замимаҳои худ истифода баред. Кор инчунин барои илова кардани дастгирии WebGPU ба китобхонаҳои маъмули JavaScript бо истифода аз WebGL идома дорад. Масалан, дастгирии пурраи WebGPU аллакай дар Babylon.js ва қисман дастгирӣ дар Three.js, PlayCanvas ва TensorFlow.js эълон шудааст.

Ба таври консептуалӣ, WebGPU аз WebGL ҳамон тавре фарқ мекунад, ки API графикаи Vulkan аз OpenGL фарқ мекунад, аммо WebGPU ба API графикии мушаххас асос надорад, балки як қабати умумӣ аст, ки ҳамон примитивҳои сатҳи пасти дар Вулкан пайдошударо истифода мебарад. Металл ва Direct3D. WebGPU барномаҳои JavaScript-ро бо назорати сатҳи паст аз болои ташкил, коркард ва интиқоли фармонҳо ба GPU, идоракунии захираҳои алоқаманд, хотира, буферҳо, объектҳои матнӣ ва шейдерҳои графикии тартибдодашуда таъмин менамояд. Ин равиш ба шумо имкон медиҳад, ки тавассути кам кардани хароҷоти изофӣ ва баланд бардоштани самаранокии GPU ба барномаҳои баландтари графикӣ ноил шавед.

WebGPU имкон медиҳад, ки лоиҳаҳои мураккаби 3D барои веб эҷод карда шаванд, ки инчунин барномаҳои мустақилона кор мекунанд, ки мустақиман Vulkan, Metal ё Direct3D-ро истифода мебаранд, аммо бо платформаҳои мушаххас алоқаманд нестанд. WebGPU инчунин имконоти иловагиро барои интиқоли барномаҳои графикаи ватанӣ ба шакли веб-фаъолшуда тавассути тартиб додан ба WebAssembly пешниҳод мекунад. Илова ба графикаи 3D, WebGPU инчунин имкониятҳои марбут ба боркунии ҳисобҳо ба тарафи GPU ва иҷроиши шейдерҳоро фаро мегирад.

Хусусиятҳои асосии WebGPU:

  • Идоракунии ҷудогонаи захираҳо, корҳои омодагӣ ва интиқоли фармонҳо ба GPU (дар WebGL як объект якбора барои ҳама чиз масъул буд). Се контексти алоҳида пешниҳод карда мешаванд: GPUDevice барои эҷоди захираҳо ба монанди матнҳо ва буферҳо; GPUCommandEncoder барои рамзгузории фармонҳои инфиродӣ, аз ҷумла марҳилаҳои намоиш ва ҳисобкунӣ; GPUCommandBuffer барои гузаштан ба навбати иҷрои GPU. Натиҷаро метавон дар минтақаи бо як ё якчанд унсурҳои рони алоқаманд ё бидуни натиҷа (масалан, ҳангоми иҷрои вазифаҳои ҳисоббарорӣ) нишон дод. Ҷудокунии марҳилаҳо ҷудо кардани амалиёти эҷод ва таъмини захираҳоро ба коркардкунандагони гуногун, ки метавонанд дар риштаҳои гуногун кор кунанд, осонтар мекунад.
  • Муносибати дигар ба идоракунии давлатҳо. WebGPU ду объектро таъмин мекунад - GPURenderPipeline ва GPUComputePipeline, ки ба шумо имкон медиҳанд, ки ҳолатҳои гуногунеро, ки таҳиякунанда пешакӣ муайян кардааст, муттаҳид кунед, ки ин ба браузер имкон медиҳад, ки захираҳоро барои кори иловагӣ, ба монанди аз нав тартиб додани шейдерҳо сарф накунад. Ҳолатҳои дастгиришаванда инҳоро дар бар мегиранд: шейдерҳо, буфери вертекс ва тарҳбандии атрибутҳо, тарҳбандиҳои гурӯҳи часпанда, омехтакунӣ, амиқӣ ва намунаҳо, форматҳои баромади пас аз намоиш.
  • Модели ҳатмӣ, ба монанди асбобҳои гурӯҳбандии захираҳои Вулкан. Барои гурӯҳбандии захираҳо ба гурӯҳҳо, WebGPU як объекти GPUBindGroup-ро пешниҳод мекунад, ки ҳангоми навиштани фармонҳо метавонад бо дигар объектҳои шабеҳ барои истифода дар shaders алоқаманд бошад. Эҷоди чунин гурӯҳҳо ба ронанда имкон медиҳад, ки пешакӣ амалҳои зарурии омодагиро анҷом диҳад ва ба браузер имкон медиҳад, ки пайванди захираҳоро байни зангҳои тиражӣ хеле зудтар тағир диҳад. Тарҳбандии пайвандҳои захираҳоро бо истифода аз объекти GPUBindGroupLayout пешакӣ муайян кардан мумкин аст.

Манбаъ: opennet.ru

Илова Эзоҳ