Chrome již bude mít podporu WebGPU a bude ve výchozím nastavení povolen

WebGPU Chrome

Po letech vývoje vydal tým Chrome WebGPU

Před pár dny Google představen prostřednictvím jednoho oznámeného výchozí podpora pro grafické rozhraní WebGPU API a WebGPU Shading Language (WGSL) ve větvi Chrome 113, jehož vydání je naplánováno na 2. května.

Pro ty, kteří neznají WebGPU, měli byste to vědět poskytuje API podobné jako Vulkan, Metal a Direct3D 12 provádět operace na straně GPU, jako je vykreslování a výpočty, a také umožňuje používat shader jazyk k psaní programů na straně GPU.

O WebGPU

Koncepčně, WebGPU se liší od WebGL stejným způsobem, jakým se grafické API Vulkan liší od OpenGL, ale WebGPU není založeno na specifickém grafickém API, spíše je to vrstva pro obecné použití, která používá stejná nízkoúrovňová primitiva jako ve Vulkanu. Metal a Direct3D. WebGPU poskytuje JavaScript aplikacím s nízkou úrovní kontroly nad organizací, zpracování a přenos příkazů do GPU, správa souvisejících zdrojů, paměti, vyrovnávacích pamětí, texturových objektů a zkompilovaných grafických shaderů. Tento přístup umožňuje dosáhnout vyššího výkonu grafických aplikací snížením režie a zvýšením efektivity GPU.

WebGPU umožňuje vytvářet složité 3D projekty pro web které fungují stejně dobře jako samostatné programy, které přímo využívají Vulkan, Metal nebo Direct3D, ale nejsou vázány na konkrétní platformy. WebGPU také poskytuje další možnosti pro portování nativních grafických programů do webového formuláře kompilací ve WebAssembly. Kromě 3D grafiky pokrývá WebGPU také možnosti spojené s přesunem výpočtů na stranu GPU a spouštěním shaderů.

Z klíčových funkcí WebGPU můžeme zdůraznit následující:

  • Oddělené řízení zdrojů, přípravné práce a předávání příkazů na GPU (ve WebGL byl za vše zodpovědný jeden objekt najednou). K dispozici jsou tři samostatné kontexty: GPUDevice pro vytváření zdrojů, jako jsou textury a vyrovnávací paměti; GPUCommandEncoder pro kódování jednotlivých příkazů, včetně fází zpracování a výpočtu; GPUCommandBuffer pro předání do fronty provádění GPU.
    Výsledek lze vykreslit v oblasti spojené s jednou nebo více položkami plátna nebo lze vykreslit bez výstupu (například při spouštění výpočetních úloh). Staging usnadňuje oddělení operací vytváření zdrojů a zajišťování do různých řadičů, které mohou běžet na různých vláknech.
  • Jiný přístup k nakládání se státem. WebGPU poskytuje dva objekty, GPURenderPipeline a GPUComputePipeline, které vám umožňují kombinovat různé stavy předdefinované vývojářem, což prohlížeči umožňuje neplýtvat prostředky na další práci, jako je rekompilace shaderů. Mezi podporované stavy patří: shadery, rozvržení vyrovnávací paměti vertexů a atributů, rozvržení pevných skupin, prolnutí, hloubka a vzory, výstupní formáty po vykreslení.
  • Závazný model, podobně jako Vulkanovy nástroje pro sdružování zdrojů. Pro seskupení zdrojů do skupin poskytuje WebGPU objekt GPUBindGroup, který lze svázat s jinými podobnými objekty pro použití v shaderech během nahrávání příkazu.
    Vytvoření takových skupin umožňuje řadiči provádět nezbytné přípravné akce předem a umožňuje prohlížeči mnohem rychleji přepínat vazby zdrojů mezi voláními draw. Rozvržení vazeb prostředků lze předdefinovat pomocí objektu GPUBindGroupLayout.

Kromě prohlížeče Chrome experimentální podpora WebGPU byla testována od dubna 2020 ve Firefoxu a od listopadu 2021 na Safari. Chcete-li povolit WebGPU ve Firefoxu, musíte nastavit příznaky dom.webgpu.enabled a gfx.webgpu.force-enabled v about:config.

Zatím se neplánuje povolit WebGPU ve výchozím nastavení ve Firefoxu a Safari. Implementace WebGPU vyvinuté pro Firefox a Chrome jsou k dispozici jako samostatné knihovny: Dawn (C++) a wgpu (Rust), které můžete použít k integraci podpory WebGPU do svých aplikací.

Za zmínku také stojí, že se pracuje na přidání podpory WebGPU do populárních knihoven JavaScriptu nativně pomocí WebGL. Například plná podpora WebGPU je již deklarována v Babylon.js a částečná v Three.js , PlayCanvas a TensorFlow.js.

Implementace WebGPU bude zpočátku povolen pouze v sestaveních pro ChromeOS, macOS a Windows, zatímco pro Linux a Android bude podpora WebGPU aktivována později.

Konečně, pokud máte zájem dozvědět se o tom více, můžete konzultovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.