Chrome pral gen ladan sipò WebGPU

Google te anonse enklizyon sipò default pou API grafik WebGPU ak WGSL (WebGPU Shading Language) nan Chrome 113, ki pwograme pou lage 2 me. WebGPU bay yon koòdone pwogramasyon ki sanble ak Vulkan, Metal, ak Direct3D 12 pou fè operasyon bò GPU tankou rann ak enfòmatik, epi li pèmèt tou itilize yon langaj shader pou ekri pwogram ki kouri sou bò GPU. Okòmansman, aplikasyon WebGPU a pral pèmèt sèlman sou ChromeOS, macOS, ak Windows bati. Pou Linux ak Android, sipò WebGPU yo pral aktive nan yon dat pita.

Anplis Chrome, sipò eksperimantal pou WebGPU te teste depi avril 2020 nan Firefox ak depi novanm 2021 nan Safari. Pou pèmèt WebGPU nan Firefox, ou ta dwe mete drapo dom.webgpu.enabled ak gfx.webgpu.force-enabled nan about:config. Pa gen okenn plan ankò pou pèmèt WebGPU pa default nan Firefox ak Safari. Enplemantasyon WebGPU devlope pou Firefox ak Chrome yo disponib sou fòm bibliyotèk separe - Dawn (C++) ak wgpu (Rust), ke ou ka itilize pou entegre sipò WebGPU nan aplikasyon w yo. Travay ap fèt tou pou ajoute sipò WebGPU nan bibliyotèk popilè JavaScript ki itilize natif natal WebGL. Pou egzanp, sipò konplè pou WebGPU deja anonse nan Babylon.js, ak sipò pasyèl nan Three.js, PlayCanvas ak TensorFlow.js.

Konseptyèlman, WebGPU diferan de WebGL nan menm jan ak API grafik Vulkan diferan de OpenGL, men WebGPU pa baze sou yon API grafik espesifik, men se yon kouch inivèsèl ki sèvi ak menm nivo primitif yo jwenn nan Vulkan, Metal ak Direct3D. WebGPU bay aplikasyon JavaScript ak kontwòl ba-nivo sou òganizasyon an, pwosesis ak transmisyon nan kòmandman nan GPU a, jere resous ki asosye, memwa, tanpon, objè teksti ak konpile grafik shaders. Apwòch sa a pèmèt ou reyalize pi wo pèfòmans pou aplikasyon grafik lè w diminye depans anlè yo epi ogmante efikasite nan travay ak GPU la.

WebGPU fè li posib yo kreye pwojè 3D konplèks pou entènèt la ki pa fè pi mal pase pwogram otonòm ki dirèkteman itilize Vulkan, Metal oswa Direct3D, men yo pa mare nan platfòm espesifik. WebGPU tou bay kapasite adisyonèl pou pòte pwogram grafik natif natal nan yon fòm ki pèmèt entènèt atravè konpilasyon nan WebAssembly. Anplis grafik 3D, WebGPU gen ladan tou kapasite ki gen rapò ak dechaje kalkil nan GPU a ak egzekite shaders.

Karakteristik kle nan WebGPU:

  • Jesyon separe nan resous, travay preparasyon ak transmisyon nan kòmandman nan GPU a (nan WebGL yon objè te responsab pou tout bagay nan yon fwa). Yo bay twa kontèks separe: GPUDevice pou kreye resous tankou tèkstur ak tanpon; GPUCommandEncoder pou kode kòmandman endividyèl, ki gen ladan etap rann ak kalkil; GPUCommandBuffer yo dwe mete ann kriye pou ekzekisyon sou GPU la. Rezilta a ka rann nan yon zòn ki asosye ak youn oswa plis eleman twal, oswa trete san pwodiksyon (pa egzanp, lè w ap fè travay kalkile). Separe etap yo fè li pi fasil yo separe kreyasyon resous ak operasyon preparasyon nan moun kap okipe diferan ki ka kouri sou fil diferan.
  • Yon apwòch diferan nan pwosesis eta yo. WebGPU ofri de objè - GPURenderPipeline ak GPUComputePipeline, ki pèmèt ou konbine plizyè eta pre-defini pa pwomotè a, ki pèmèt navigatè a pa gaspiye resous sou travay adisyonèl, tankou recompiling shaders. Eta ki sipòte yo enkli: shaders, tanpon somè ak layout atribi, fòm gwoup kolan, melanje, pwofondè ak modèl, ak fòma pwodiksyon apre rann.
  • Yon modèl obligatwa anpil tankou karakteristik gwoup resous Vulkan la. Pou gwoupe resous yo ansanm, WebGPU bay yon objè GPUBindGroup, ki ka asosye ak lòt objè ki sanble pou itilize nan shaders pandan y ap ekri kòmandman yo. Kreye gwoup sa yo pèmèt chofè a fè aksyon preparasyon ki nesesè yo davans, epi li pèmèt navigatè a chanje koneksyon resous ant apèl trase pi vit. Ka Layout nan lyezon resous yo ka predefini lè l sèvi avèk objè a GPUBindGroupLayout.

Sous: opennet.ru

Add nouvo kòmantè