W3C unveils tunbo WebGPU bošewa

W3C ti tu awọn iyaworan akọkọ ti WebGPU ati WebGPU Shading Language (WGSL) ni pato, eyiti o ṣalaye awọn API fun ṣiṣe awọn iṣẹ GPU gẹgẹbi ṣiṣe ati ṣiṣe iṣiro, bakanna bi ede shader fun awọn eto kikọ ti o ṣiṣẹ lori GPU. ni imọran ti o jọra si Vulkan, Metal ati Direct3D 12 APIs ti pese sile nipasẹ ẹgbẹ iṣẹ kan ti o pẹlu awọn onimọ-ẹrọ lati Mozilla, Google, Apple ati Microsoft.

Ni imọran, WebGPU yato si WebGL ni ọna kanna ti Vulkan eya API yato si OpenGL, ṣugbọn ko da lori API eya aworan kan pato, ṣugbọn o jẹ ipele ti gbogbo agbaye ti o nlo awọn ipilẹ-kekere kanna ti a ri ni Vulkan, Metal ati Taara3D. WebGPU n pese awọn ohun elo JavaScript pẹlu iṣakoso ipele kekere lori agbari, sisẹ ati gbigbe awọn aṣẹ si GPU, ṣiṣakoso awọn orisun ti o somọ, iranti, awọn buffers, awọn nkan awoara ati awọn ojiji awọn aworan ti a ṣajọ. Ọna yii ngbanilaaye lati ṣaṣeyọri iṣẹ ṣiṣe ti o ga julọ fun awọn ohun elo eya aworan nipa idinku awọn idiyele oke ati jijẹ ṣiṣe ti ṣiṣẹ pẹlu GPU.

WebGPU jẹ ki o ṣee ṣe lati ṣẹda awọn iṣẹ akanṣe 3D ti o nipọn fun oju opo wẹẹbu ti ko ṣiṣẹ buru ju awọn eto imurasilẹ lọ ti o wọle si Vulkan, Irin tabi Direct3D taara, ṣugbọn ko ni asopọ si awọn iru ẹrọ kan pato. WebGPU tun pese awọn agbara afikun fun gbigbe awọn eto eya aworan abinibi sinu fọọmu ti n ṣiṣẹ wẹẹbu nipasẹ iṣakojọpọ sinu WebAssembly. Ni afikun si awọn aworan 3D, WebGPU tun pẹlu awọn agbara ti o ni ibatan si awọn iṣiro gbigbe si GPU ati ṣiṣe awọn ojiji.

Awọn ẹya pataki ti WebGPU:

  • Isakoso lọtọ ti awọn orisun, iṣẹ igbaradi ati gbigbe awọn aṣẹ si GPU (ni WebGL ohun kan jẹ iduro fun ohun gbogbo ni ẹẹkan). Awọn ipo ọtọtọ mẹta ni a pese: GPUDevice fun ṣiṣẹda awọn orisun gẹgẹbi awọn awoara ati awọn buffers; GPUCommandEncoder fun fifi koodu pa awọn aṣẹ kọọkan, pẹlu ṣiṣe ati awọn ipele iṣiro; GPUCommandBuffer lati wa ni ila fun ipaniyan lori GPU. Abajade le ṣee ṣe ni agbegbe ti o ni nkan ṣe pẹlu ọkan tabi diẹ ẹ sii awọn eroja kanfasi, tabi ni ilọsiwaju laisi iṣẹjade (fun apẹẹrẹ, nigba ṣiṣe awọn iṣẹ ṣiṣe iṣiro). Iyapa awọn ipele jẹ ki o rọrun lati ya awọn ẹda orisun ati awọn iṣẹ igbaradi sinu awọn oluṣakoso oriṣiriṣi ti o le ṣiṣẹ lori awọn okun oriṣiriṣi.
  • Ọna ti o yatọ si awọn ipinlẹ sisẹ. WebGPU nfunni ni awọn nkan meji - GPURenderPipeline ati GPUComputePipeline, eyiti o gba ọ laaye lati ṣajọpọ awọn ipinlẹ oriṣiriṣi ti a ti ṣalaye tẹlẹ nipasẹ olupilẹṣẹ, eyiti o fun laaye ẹrọ aṣawakiri lati ma sọ ​​awọn orisun nu lori iṣẹ afikun, gẹgẹbi awọn atunto awọn shaders. Awọn ipinlẹ ti a ṣe atilẹyin pẹlu: awọn shaders, ifipamọ fatesi ati awọn ipilẹ abuda, awọn ipilẹ ẹgbẹ alalepo, idapọmọra, ijinle ati awọn ilana, ati awọn ọna kika igbejade ifiweranṣẹ.
  • Awoṣe abuda pupọ bii awọn ẹya akojọpọ awọn orisun Vulkan. Lati ṣe akojọpọ awọn orisun papọ, WebGPU n pese ohun elo GPUBindGroup kan, eyiti o le ni nkan ṣe pẹlu awọn nkan miiran ti o jọra fun lilo ninu awọn iboji lakoko kikọ awọn aṣẹ. Ṣiṣẹda iru awọn ẹgbẹ gba awakọ laaye lati ṣe awọn iṣe igbaradi pataki ni ilosiwaju, ati gba ẹrọ aṣawakiri laaye lati yi awọn asopọ awọn orisun laarin awọn ipe fa yiyara pupọ. Awọn ifilelẹ ti awọn ohun elo abuda le ti wa ni asọye tẹlẹ nipa lilo GPUBindGroupLayout ohun.

orisun: opennet.ru

Fi ọrọìwòye kun