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 několika dny Google oznámil výchozí podporu pro grafické API WebGPU a shadingový jazyk WebGPU (WGSL) v prohlížeči Chrome 113 , jehož vydání je naplánováno na 2. května.

Pro ty, kteří nejsou s WebGPU obeznámeni, nabízí API podobné Vulkanu, Metalu a Direct3D 12 pro provádění operací na straně GPU, jako je zpracování a výpočty, a také umožňuje používat shadingový jazyk pro psaní programů na straně GPU.

O WebGPU

Koncepčně se WebGPU liší od WebGL stejným způsobem, jako se grafické API Vulkan liší od OpenGL, ale WebGPU není založeno na specifickém grafickém API. Místo toho se jedná o univerzální vrstvu, která používá stejná nízkoúrovňová primitiva, která se nacházejí ve Vulkanu, Metalu a Direct3D. WebGPU poskytuje JavaScriptovým aplikacím nízkoúrovňovou kontrolu nad organizací, zpracováním a přenosem příkazů do GPU, jakož i nad správou souvisejících zdrojů, paměti, vyrovnávacích pamětí, texturních objektů a kompilovaných grafických shaderů. Tento přístup umožňuje vysoce výkonné grafické aplikace snížením režijních nákladů a zvýšením efektivity GPU.

WebGPU umožňuje vytvářet komplexní 3D projekty pro web , které fungují stejně dobře jako samostatné programy pomocí 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é podoby jejich kompilací ve WebAssembly. Kromě 3D grafiky pokrývá WebGPU také možnosti spojené s přesunem výpočtů na 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ě Chromu je experimentální podpora WebGPU testována ve Firefoxu od dubna 2020 a v Safari od listopadu 2021. Chcete-li povolit WebGPU ve Firefoxu, musíte v souboru `about:config` nakonfigurovat příznaky `dom.webgpu.enabled` a `gfx.webgpu.force-enabled`.

V současné době neexistují žádné plány na povolení 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 povolena pouze v sestaveních pro ChromeOS, macOS a Windows, zatímco pro Linux a Android bude podpora WebGPU povolena později.

A konečně, pokud máte zájem dozvědět se více, podrobnosti naleznete na následujícím odkazu.


Přidat jako preferovaný zdroj v Googlu