A Chrome támogatni fogja a WebGPU-t.

A Google bejelentette, hogy a Chrome 113-as ágon, amelynek kiadása május 2-ra van tervezve, alapértelmezetté válik a WebGPU grafikus API és a WGSL (WebGPU Shading Language) shader nyelv támogatása. A WebGPU hasonló programozási interfészt biztosít, mint a Vulkan, Metal és Direct3D 12, lehetővé téve a GPU oldalán történő műveletek, például a renderelés és a számítások végrehajtását, illetve shader programok írását a GPU számára. A WebGPU megvalósítása kezdetben csak a ChromeOS, macOS és Windows buildjein lesz elérhető. A Linux és Android esetében a WebGPU támogatás később aktiválásra kerül.

A Chrome mellett a WebGPU kísérleti támogatása 2020 áprilisa óta tesztelés alatt áll a Firefoxban, és 2021 novembere óta a Safari-ban. A WebGPU engedélyezéséhez a Firefoxban az about:config alatt a dom.webgpu.enabled és gfx.webgpu.force-enabled zászlókat kell aktiválni. A Firefox és a Safari alapértelmezett WebGPU engedélyezési terveiről egyelőre nincsenek információk. A Firefox és a Chrome számára kifejlesztett WebGPU megvalósítások külön könyvtárak formájában érhetők el — Dawn (C++) és wgpu (Rust), amelyeket a WebGPU támogatás integrálásához használhatunk saját alkalmazásaikba. Továbbá népszerű JavaScript könyvtárakba is dolgoznak a WebGPU támogatás hozzáadásán, amelyek eredetileg a WebGL-t használják. Például a Babylon.js már teljes mértékben támogatja a WebGPU-t, míg a Three.js, PlayCanvas és TensorFlow.js esetében részleges támogatás érhető el.

A WebGPU koncepcionálisan úgy különbözik a WebGL-től, mint ahogyan a Vulkan grafikus API a OpenGL-től, de a WebGPU nem egy konkrét grafikai API-ra épül, hanem egy általános réteget képvisel, amely ugyanazokat az alacsony szintű primitívákat használja, mint a Vulkan, Metal és Direct3D. A WebGPU lehetőséget biztosít a JavaScript alkalmazásoknak az alacsony szintű irányításra a GPU-hoz történő parancsok szervezésében, feldolgozásában és továbbításában, valamint a kapcsolódó erőforrások, memória, pufferek, textúraobjektumok és a lefordított grafikai shaderek kezelésére. Ez a megközelítés lehetővé teszi a grafikai alkalmazások teljesítményének növelését a költségek csökkentése és a GPU-val való hatékonyabb munka révén.

A WebGPU lehetővé teszi bonyolult 3D projektek létrehozását a Web számára, amelyek teljesítménye nem marad el a Vulkan, Metal vagy Direct3D közvetlen használatával készült önálló programokétól, ugyanakkor nem kötődnek egy adott platformhoz. A WebGPU további lehetőségeket is biztosít a natív grafikai programok webtechnológiákra történő átkonvertálásához a WebAssembly-ba történő fordítás révén. A 3D grafikán kívül a WebGPU a számítások GPU-ra történő kihelyezése és a shader-ek végrehajtásával kapcsolatos lehetőségeket is magában foglalja.

A WebGPU kulcsfontosságú jellemzői:

  • Különálló erőforráskezelés, előkészítő munkálatok és utasítások átadása a GPU számára (a WebGL-ben egy objektum felelt meg mindenért). Három különálló kontextus áll rendelkezésre: GPUDevice a textúrák és pufferek létrehozásához; GPUCommandEncoder az egyes utasítások kódolásához, beleértve a renderelési és számítási szakaszokat; GPUCommandBuffer az utasítások GPU-ra való végrehajtásra való sorba állításához. Az eredményt egy vagy több canvas elemhez kapcsolódó területen lehet megjeleníteni, vagy kiadható output nélkül (például számítási feladatok végrehajtásakor). A szakaszok elkülönítése megkönnyíti az erőforrások létrehozásának és az előkészítő műveleteknek a különböző kezelőkbe való szétválasztását, amelyek különböző szálakban futtathatók.
  • Más megközelítés az állapotok kezelésében. A WebGPU két objektumot kínál - GPURenderPipeline és GPUComputePipeline, amelyek lehetővé teszik a különböző állapotok kombinálását, amelyeket a fejlesztő előre definiált, ezáltal lehetővé téve a böngésző számára, hogy ne pazarolja az erőforrásokat további munkálatokra, például shader-ek újbóli optimalizálására. A támogatott állapotok között megtalálhatók: shader-ek, vertex buffer és attribútum elrendezések, rögzített csoportelrendezések, keverés, mélység és sablonok, valamint renderelés utáni kimeneti formátumok.
  • A kötődési modell, amely nagymértékben hasonlít a Vulkan által biztosított erőforrás-csoportosító eszközökhöz. Az erőforrások csoportosításához a WebGPU a GPUBindGroup objektumot biztosít, amelyet parancsok írása során más hasonló objektumokkal lehet összekapcsolni a shaderek használatához. Az ilyen csoportok létrehozása lehetővé teszi a meghajtónak, hogy előre elvégezze a szükséges előkészítési lépéseket, míg a böngésző számára jelentősen gyorsabb erőforrás-kötések váltását teszi lehetővé a kirajzolás hívásai között. Az erőforrások elrendezése előre meghatározható a GPUBindGroupLayout objektum segítségével.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster