El W3C odhalen Nedávno, první návrhy specifikací WebGPU a WebGPU Shading Language (WGSL), které definují rozhraní API pro provádění operací GPU, jako je vykreslování a výpočet, a shaderový jazyk pro psaní programů na straně GPU.
Tyto specifikace jsou koncepčně podobné API Vulkan, Metal a Direct3D 12. Specifikace byly připraveny pracovní skupinou, která zahrnovala inženýry z Mozilly, Google, Apple a Microsoft.
Cílem GPU pro webovou pracovní skupinu je poskytnout rozhraní mezi webovou platformou a moderními 3D grafickými a výpočetními schopnostmi nalezenými v nativních systémových platformách. Zjistěte více o cílech, rozsahu a výstupech.
Skupina GPU pro webovou komunitu vyvinula specifikace přijaté touto pracovní skupinou. Komunitní skupina pokračuje v prosazování technické práce na specifikacích a inkubuje nové funkce. Tato pracovní skupina spolupracuje se skupinou Společenství na formování specifikací pro cestu doporučení.
Koncepčně, WebGPU se od WebGL liší stejným způsobem grafické API Vulkan se liší od OpenGL, ale není založen na konkrétním grafickém API, jde spíše o univerzální vrstvu, která používá stejná nízkoúrovňová primitiva, která se nacházejí ve Vulkan, Metal a Direct3D.
WebGPU poskytuje aplikacím JavaScriptu nástroje pro řízení na nízké úrovnio organizaci, zpracování a přenos příkazů do GPU, správa přidružených zdrojů, paměti, vyrovnávacích pamětí, texturních objektů a kompilovaných grafických shaderů. Tento přístup vám 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é nefungují stejným způsobem jako v samostatných programech, které přímo přistupují k Vulkan, Metal nebo Direct3D, ale nejsou vázány na konkrétní platformy.
WebGPU také poskytuje další funkce pro port nativních grafických programů do webového formuláře kompilací ve WebAssembly. Kromě 3D grafiky pokrývá WebGPU také možnosti spojené s outsourcingovými výpočty na stranu GPU a spuštěním shaderů.
Klíčové vlastnosti WebGPU:
- Samostatná správa zdrojů, přípravné práce a přenos 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 razítka; GPUCommandEncoder pro kódování jednotlivých příkazů, včetně fází zpracování a výpočtu; GPUCommandBuffer do fronty pro provedení na GPU. Výsledek lze vykreslit v oblasti přidružené k jednomu nebo více plátům nebo vykreslit bez vykreslení (například při spuštění výpočetních úloh). Staging usnadňuje oddělení vytváření prostředků a přípravných operací na různých řadičích, které mohou běžet na různých vláknech.
- Jiný přístup ke zpracování stavuAno WebGPU nabízí dva objekty, GPURenderPipeline a GPUComputePipeline, že ty povolit kombinování různých stavů předdefinovaných vývojářem, což umožňuje prohlížeči neplýtvat prostředky na další práce, jako je přestavba shaderů. Mezi podporované stavy patří shadery, vyrovnávací paměti vrcholů a rozložení atributů, připojené rozložení skupin, sloučení, hloubka a šablony a výstupní formáty post-processingu.
- Vazební model podobně jako nástroje fondu zdrojů Vulkan. Chcete-li seskupit prostředky do skupin, poskytuje WebGPU objekt GPUBindGroup, který lze při psaní příkazů propojit s jinými objekty stejného typu pro použití v shaderech. Vytvoření takových skupin umožňuje řidiči předem provést nezbytné přípravné akce a prohlížeč umožňuje prohlížeči mnohem rychleji měnit vazby prostředků mezi voláními kreslení. Rozložení odkazů na zdroje lze předdefinovat pomocí objektu GPUBindGroupLayout.
Konečně, pokud máte zájem o tom vědět více o poznámce můžete zkontrolovat podrobnostiJe to v následujícím odkazu.