V nočních verzích Firefoxu byla přidána podpora WebGPU

V nočních sestaveních Firefoxu se objevila podpora specifikace WebGPU, poskytující aplikační programovací rozhraní pro zpracování 3D grafiky a výpočty na straně GPU, konceptuálně podobný API Vulkan, Metal a Direct3D 12. Specifikaci vyvíjejí Mozilla, Google, Apple, Microsoft a zástupci komunity ve pracovní skupiněV současnosti je v kontextu ochrany proti přenosu Cookies v průběhu

Klíčovým úkolem WebGPU je vytvoření bezpečného, pohodlného, přenosného a vysoce výkonného aplikačního programovacího rozhraní pro použití v webové platformě s technologiemi a možnostmi 3D grafiky, které poskytují moderní systémové grafické API, jako je Direct3D 12 ve Windows, Metal v macOS a Vulkan v Linuxu. Konceptuálně se WebGPU liší od WebGL přibližně stejně jako Vulkan od OpenGL, přičemž se nezakládá na konkrétním grafickém API, ale představuje univerzální vrstvu, která používá stejné nízkoúrovňové primitivy, jaké jsou k dispozici ve Vulkánu, Metalu a Direct3D.

WebGPU poskytuje aplikacím v JavaScriptu prostředky pro nižší úrovňovou kontrolu organizace, zpracování a přenos příkazů k GPU, správu souvisejících zdrojů, paměti, bufferů, objektů textur a zkompilovaných grafických shaderů. Takový přístup umožňuje dosáhnout vyšší výkonnosti grafických aplikací snížením režijních nákladů a zvýšením efektivity práce s GPU.

WebGPU umožňuje vytvářet pro Web plně složité 3D projekty, které fungují stejně dobře jako izolované programy, které přímo komunikují s Vulkánem, Metalem nebo Direct3D, ale nejsou vázané na konkrétní platformy. WebGPU také poskytuje další možnosti při portování nativních grafických programů do formy schopné fungovat na základě webových technologií díky použití technologie WebAssembly. Kromě 3D grafiky WebGPU pokrývá i možnosti spojené s výpočty na straně GPU a podporou vývoje shaderů. Shadery mohou se vytvářejí v jazyce WebGPU Shading Language nebo se definují ve středním formátu SPIR-V, po čemž se převádějí do jazyků shaderů, které podporují aktuální ovladače.

Ve WebGPU se používá oddělené řízení zdrojů, přípravných prací a přenosu příkazů do GPU (ve WebGL byl jeden objekt odpovědný za všechno najednou). Poskytují se tři samostatné kontexty:
GPUDevice pro vytváření zdrojů, jako jsou textury a buffery; GPUCommandEncoder pro kódování jednotlivých příkazů, včetně fází vykreslování a výpočtů; GPUCommandBuffer pro zařazení do fronty k vykonání na GPU. Výsledek může být vykreslen v oblasti spojené s jedním nebo více elementy canvas, nebo zpracován bez výstupu (například při spuštění výpočetních úloh). Oddělení fází usnadňuje rozdělení vytváření zdrojů a přípravných operací do různých zpracovatelů, které mohou být spouštěny v různých vláknech.

Druhým rozdílem WebGPU od WebGL je jiný přístup k zpracování stavů. Ve WebGPU jsou navrženy dva objekty — GPURenderPipeline a GPUComputePipeline, které umožňují kombinovat různé stavy, předem definované vývojářem, což umožňuje prohlížeči neušetřit zdroje na provádění dodatečné práce, jako je překompilace shaderů. Mezi podporované stavy patří: shadery, rozložení vertexových bufferů a atributů, rozložení připojených skupin, míchání, hloubka a šablony, formáty výstupu po vykreslování.

Třetí zvláštností WebGPU je model vazby, který do značné míry
připomíná stávající prostředky v Vulkan pro seskupování zdrojů.
Pro seskupování zdrojů do skupin poskytuje WebGPU objekt GPUBindGroup, který lze při zápisu příkazů propojit s jinými podobnými objekty pro použití ve shaderech. Vytváření takových skupin umožňuje ovladači provést nezbytné přípravné kroky předem a prohlížeči umožňuje mnohem rychleji měnit vazby zdrojů mezi výkresovými voláními. Rozvržení vazeb zdrojů může být definováno předem pomocí objektu GPUBindGroupLayout.

V nočních verzích Firefoxu byla přidána podpora WebGPU

Ve Firefoxu je pro povolení WebGPU v about:config nastavena volba „dom.webgpu.enabled“. Pro vykreslování CanvasContext je také nutné aktivovat systém kompozice WebRender („gfx.webrender.all“ v about:config), napsaný v jazyce Rust a delegující na GPU operace vykreslování obsahu stránky. Implementace WebGPU je založena na kódu projektu
wgpu, napsaného v jazyce Rust a schopného pracovat nad API DX12, Vulkan a Metal v Linuxu, Androidu, Windows a macOS (podpora pro DX11 a OpenGL ES 3.0 je také ve vývoji). Paralelně společnost Google vyvíjí jinou implementaci, která je dostupná v větvi Canary Chromium se aktivuje pomocí příznaku „chrome://flags/#enable-unsafe-webgpu“, ale zatím funguje pouze na macOS a Windows.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster