W3C-k WebGPU estandarraren zirriborroa aurkeztu du

W3C-k WebGPU eta WebGPU Shading Language (WGSL) zehaztapenen lehen zirriborroak kaleratu ditu, GPUren eragiketak egiteko APIak definitzen dituztenak, hala nola errendatzea eta konputazioa, baita GPUan exekutatzen diren programak idazteko itzal-lengoaia bat ere. kontzeptualki Vulkan, Metal eta Direct3D 12 APIen antzekoa.Zehaztapenak Mozilla, Google, Apple eta Microsoft-eko ingeniariak biltzen zituen lantalde batek prestatu zituen.

Kontzeptuki, WebGPU WebGL-tik ezberdintzen da Vulkan grafikoen APIa OpenGL-en desberdina den modu berean, baina ez dago API grafiko zehatz batean oinarritzen, baizik eta Vulkan, Metal eta Vulkan-en aurkitutako behe-mailako primitibo berdinak erabiltzen dituen geruza unibertsala da. Zuzeneko 3D. WebGPU-k JavaScript aplikazioak maila baxuko kontrola eskaintzen ditu GPUra komandoak antolatzea, prozesatzea eta igortzea, erlazionatutako baliabideak, memoria, buffer-ak, ehundura-objektuak eta konpilatutako itzalaldi grafikoak kudeatuz. Planteamendu honi esker, aplikazio grafikoetarako errendimendu handiagoa lortzen duzu kostu orokorrak murriztuz eta GPUarekin lan egiteko eraginkortasuna areagotuz.

WebGPU-k 3D proiektu konplexuak sortzea ahalbidetzen du Weberako, Vulkan, Metal edo Direct3D zuzenean sartzen diren programa autonomoak baino okerrago funtzionatzen ez dutenak, baina plataforma zehatz batzuetara lotuta ez daudenak. WebGPU-k gaitasun gehigarriak eskaintzen ditu berezko programa grafikoak web-gaitutako inprimaki batera eramateko WebAssembly-n konpilazioaren bidez. 3D grafikoez gain, WebGPU-k kalkuluak GPUra deskargatzearekin eta itzalgailuak exekutatzearekin lotutako gaitasunak ere biltzen ditu.

WebGPUren ezaugarri nagusiak:

  • Baliabideen kudeaketa bereizia, prestaketa lanak eta komandoak GPUra igortzea (WebGLn objektu bat zen guztiaren ardura aldi berean). Hiru testuinguru bereizi eskaintzen dira: GPUDevice baliabideak sortzeko, hala nola testurak eta buffer-ak; GPUCommandEncoder komando indibidualak kodetzeko, errendatze eta konputazio faseak barne; GPUCommandBuffer ilaran jarriko da GPUan exekutatzeko. Emaitza mihise-elementu batekin edo gehiagorekin lotutako eremu batean errenda daiteke, edo irteerarik gabe prozesatu (adibidez, konputazio-zereginak exekutatzen direnean). Etapak bereizteak baliabideak sortzeko eta prestatzeko eragiketak hari ezberdinetan exekutatu daitezkeen kudeatzaile ezberdinetan bereiztea errazten du.
  • Egoera prozesatzeko beste ikuspegi bat. WebGPU-k bi objektu eskaintzen ditu: GPURenderPipeline eta GPUComputePipeline, garatzaileak aurrez zehaztutako hainbat egoera konbinatzeko aukera ematen dutenak, eta horri esker, arakatzaileak ez ditu baliabideak alferrik galtzen lan gehigarrietan, hala nola itzalgailuak birkonpilatzen. Onartutako egoerak hauek dira: itzalgailuak, erpin-buffer eta atributuen diseinuak, talde-diseinu itsaskorrak, nahasketa, sakontasuna eta ereduak eta errendatze osteko irteera-formatuak.
  • Lotura-eredu bat Vulkan-en baliabideak taldekatzeko eginbideen antzekoa. Baliabideak elkarrekin taldekatzeko, WebGPU-k GPUBindGroup objektu bat eskaintzen du, eta antzeko beste objektu batzuekin lotu daiteke, itzalgailuetan erabiltzeko komandoak idaztean. Horrelako taldeak sortzeari esker, gidariak beharrezkoak diren prestaketa-ekintzak egin ditzake aldez aurretik, eta arakatzaileak zozketa-deien artean baliabideen loturak alda ditzake askoz azkarrago. Baliabideen loturen diseinua aurrez defini daiteke GPUBindGroupLayout objektua erabiliz.

Iturria: opennet.ru

Gehitu iruzkin berria