V Chrome bude zaradená podpora WebGPU.

Spoločnosť Google oznámila, že od verzie Chrome 113, plánovanej na 2. mája, bude predvolene podporovať grafické API WebGPU a jazyk shaderov WGSL (WebGPU Shading Language). WebGPU poskytuje rozhranie podobné Vulkan, Metal a Direct3D 12 na vykonávanie operácií na strane GPU, ako je vykresľovanie a výpočty, a umožňuje používanie jazyka shaderov na písanie programov fungujúcich na strane GPU. Implementácia WebGPU bude najprv zahrnutá len v zostavách pre ChromeOS, macOS a Windows. Podpora WebGPU pre Linux a Android sa aktivuje neskôr.

Okrem Chrome sa experimentálna podpora WebGPU testuje od apríla 2020 vo Firefoxe a od novembra 2021 v Safari. Na aktiváciu WebGPU vo Firefoxe je potrebné v about:config nastaviť vlajky dom.webgpu.enabled a gfx.webgpu.force-enabled. O plánoch na predvolené zahrnutie WebGPU vo Firefoxe a Safari zatiaľ neboli oznámené žiadne informácie. Realizácie WebGPU vyvíjané pre Firefox a Chrome sú k dispozícii vo forme samostatných knižníc — Dawn (C++) a wgpu (Rust), ktoré môžu byť použité na integráciu podpory WebGPU do vašich aplikácií. Takisto sa pracuje na pridávaní podpory WebGPU do populárnych JavaScript knižníc, ktoré pôvodne používajú WebGL. Napríklad, úplná podpora WebGPU už bola deklarovaná v Babylon.js, čiastočná v Three.js, PlayCanvas a TensorFlow.js.

Konceptuálne sa WebGPU líši od WebGL približne tak, ako sa grafické API Vulkan líši od OpenGL, avšak WebGPU nie je založené na konkrétnom grafickom API, ale predstavuje univerzálnu vrstvu, ktorá využíva tie isté nízkoúrovňové primitívy, aké sú dostupné vo Vulkan, Metal a Direct3D. WebGPU poskytuje aplikáciám na JavaScripte prostriedky na nízkoúrovňovú kontrolu organizácie, spracovania a prenosu príkazov k GPU, na správu súvisiacich zdrojov, pamäte, vyrovnávacích pamätí, objektov textúr a skompilovaných grafických shaderov. Tento prístup umožňuje dosiahnuť vyšší výkon grafických aplikácií znížením režijných nákladov a zvýšením efektivity práce s GPU.

WebGPU umožňuje vytvárať komplexné 3D projekty pre web, ktoré fungujú rovnako dobre ako samostatné programy priamo využívajúce Vulkan, Metal alebo Direct3D, ale nie sú viazané na konkrétne platformy. WebGPU tiež poskytuje dodatočné možnosti pri portovaní natívnych grafických programov do formy schopnej fungovať na základe webových technológií, vďaka kompilácii do WebAssembly. Okrem 3D grafiky WebGPU pokrýva aj možnosti súvisiace s prenášaním výpočtov na GPU a vykonávaním shaderov.

Kľúčové vlastnosti WebGPU:

  • Oddelené riadenie zdrojov, prípravných prác a odovzdávania príkazov do GPU (v WebGL jeden objekt zodpovedal za všetko naraz). Poskytuje sa tri samostatné kontexty: GPUDevice na vytváranie zdrojov, ako sú textúry a buffery; GPUCommandEncoder na kódovanie jednotlivých príkazov vrátane fáz vykresľovania a počítania; GPUCommandBuffer na odosielanie do frontu na vykonanie v GPU. Výsledok môže byť vykreslený v oblasti spjatej s jedným alebo viacerými prvkami canvas, alebo spracovaný bez výstupu (napríklad pri spúšťaní počítacích úloh). Rozdelenie fáz zjednodušuje rozloženie vytvárania zdrojov a prípravné operácie do rôznych spracovateľov, ktoré môžu byť vykonané v rôznych vláknach.
  • Iný prístup pri spracovávaní stavov. V WebGPU sú navrhnuté dva objekty — GPURenderPipeline a GPUComputePipeline, ktoré umožňujú kombinovať rôzne stavy, vopred definované vývojárom, čo umožňuje prehliadaču neužiť prostriedky na ďalšiu prácu, ako je prekompilácia shaderov. Medzi podporované stavy patria: shadery, rozloženia vertex bufferov a atribútov, rozloženia pripojených skupín, miešanie, hĺbka a šablóny, formáty výstupu po vykresľovaní.
  • Model viazania, ktorý pripomína existujúce v Vulkan prostriedky skupinovania zdrojov. Na zlúčenie zdrojov do skupín poskytuje WebGPU objekt GPUBindGroup, ktorý je možné pri zápise príkazov previazať s inými takýmito objektmi na použitie v shadroch. Vytváranie takýchto skupín umožňuje ovládaču vopred vykonať potrebné prípravné kroky a prehliadaču uľahčuje značné zrýchlenie zmeny väzieb zdrojov medzi volaniami vykresľovania. Rozloženie väzieb zdrojov môže byť definované vopred pomocou objektu GPUBindGroupLayout.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster