W3C лоиҳаи стандарти WebGPU-ро муаррифӣ мекунад

W3C аввалин тарҳҳои мушаххасоти WebGPU ва WebGPU Shading Language (WGSL) -ро интишор кард, ки API-ҳоро барои иҷрои амалиёти GPU, аз қабили намоиш ва ҳисоббарорӣ, инчунин забони шейдер барои навиштани барномаҳое, ки дар GPU кор мекунанд, муайян мекунанд. консептуал ба API-ҳои Vulkan, Metal ва Direct3D 12 шабоҳат дорад. Мушаххасоти мазкур аз ҷониби гурӯҳи корӣ омода шудааст, ки муҳандисони Mozilla, Google, Apple ва Microsoft дохил мешаванд.

Ба таври консептуалӣ, WebGPU аз WebGL ҳамон тавре фарқ мекунад, ки API графикаи Vulkan аз OpenGL фарқ мекунад, аммо он ба API-и мушаххаси графикӣ асос надорад, балки як қабати универсалӣ мебошад, ки ҳамон примитивҳои сатҳи пасти дар Vulkan, Metal ва 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

Илова Эзоҳ