Firefox gaueko eraikitzeek WebGPU euskarria dute orain

Π’ gaua Firefox eraikitzen du agertu zehaztapenen euskarria WebGPU, 3D grafikoen prozesamendurako eta GPU alboko konputaziorako programazio interfaze bat eskaintzen duena, kontzeptualki APIaren antzekoa. vulkan, Metal ΠΈ Direct3D 12. Zehaztapena Mozilla, Google, Apple, Microsoft eta komunitateko kideek garatzen ari dira lan-taldea, W3C erakundeak sortua.

WebGPUren funtsezko helburua da web plataformarako programazio-interfaze seguru, erabilerraz, eramangarri eta errendimendu handiko bat eskaintzea, sistema modernoko API grafikoek eskaintzen dituzten 3D grafikoen teknologiak eta gaitasunak aprobetxatzeko, hala nola Direct3D 12 Windows, Metal-en. macOS-en, eta Vulkan Linux-en. Kontzeptuki, WebGPU WebGL-tik desberdina da Vulkan OpenGL-tik desberdintzen den modu berean, eta, aldi berean, ez dago API grafiko zehatz batean oinarritzen, baina geruza unibertsala da, orokorrean Vulkan-en aurkitutako behe-mailako primitibo berdinak erabiltzen dituena. Metala eta Direct3D.

WebGPU-k JavaScript aplikazioak ematen ditu komandoak GPUra antolatzeko, prozesatzeko eta igortzeko maila baxuagoko kontrolarekin, lotutako baliabideak, memoria, buffer-ak, ehundura-objektuak eta konpilatutako itzalgailu grafikoak kudeatuz. Planteamendu honi esker, aplikazio grafikoetarako errendimendu handiagoa lortzen duzu kostu orokorrak murriztuz eta GPUarekin lan egiteko eraginkortasuna areagotuz.

WebGPU-k 3D proiektu konplexu osoak 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 ere eskaintzen ditu berezko programa grafikoak web-gaitutako inprimaki batera eramatean WebAssembly teknologiaren bidez. 3D grafikoez gain, WebGPU-k GPUra kalkuluak deskargatzearekin eta shader garapenarekin lotutako gaitasunak ere hartzen ditu. Itzalgailuak ahal WebGPU Shading Language-n sortuko da edo tarteko SPIR-V formatuan zehaztu, eta gero egungo kontrolatzaileek onartzen dituzten itzal-lengoaietara itzuliko da.

WebGPU-k baliabideen kudeaketa bereizia erabiltzen du, prestaketa-lana eta komandoak GPUra igortzea (WebGL-n, objektu bat zen guztiaren ardura aldi berean). Hiru testuinguru bereizi eskaintzen dira:
GPUGailua 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 errendatu 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.

WebGPU eta WebGLren arteko bigarren aldea egoerak kudeatzeko beste ikuspegi bat da. 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.

WebGPUren hirugarren ezaugarriari lotura-eredua deitzen zaio, neurri handi batean
Vulkan-en dauden baliabideak taldekatzeko tresnak gogorarazten ditu.
Baliabideak elkarrekin biltzeko, WebGPU-k GPUBindGroup objektu bat eskaintzen du, antzeko beste objektu batzuekin lotu daitekeena itzalean 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.

Firefox gaueko eraikitzeek WebGPU euskarria dute orain

Firefox-en, "dom.webgpu.enabled" ezarpena about:config-en eskaintzen da WebGPU gaitzeko. CanvasContext errendatzeak konposaketa gaituta egotea ere eskatzen du WebRender ("gfx.webrender.all" about:config in), Rust-en idatzia eta orriaren edukia errendatzeko eragiketak GPUra azpikontratatzea. WebGPU inplementazioa proiektuaren kodean oinarritzen da
wgpu, Rust-en idatzia eta DX12, Vulkan eta Metal APIen gainean exekutatzeko gai dena Linux, Android, Windows eta macOS-en (DX11 eta OpenGL ES 3.0 euskarria ere garatzen ari da). Aldi berean, Google beste inplementazio bat garatzen ari da, eta bertan eskuragarri dago Kanariar adarra Chromium eta "chrome://flags/#enable-unsafe-webgpu" marka erabiliz gaituta dago, baina orain arte macOS eta Windows-en bakarrik funtzionatzen du.

Iturria: opennet.ru

Gehitu iruzkin berria