Firefox a Safari budú mať podporu pre WebGPU

Mozilla sa rozhodla povoliť podporu pre rozhranie WebGPU API a WGSL (WebGPU Shading Language) vo Firefoxe. Pre platformu Windows Podpora WebGPU bude štandardne povolená vo Firefoxe 141, ktorá je naplánovaná na 22. júla. Podpora WebGPU sa potom plánuje povoliť v zostaveniach v nasledujúcich mesiacoch: Linux и macOSa po nejakom čase vo verzii pre platformu AndroidAk chcete manuálne povoliť WebGPU, môžete použiť parametre „dom.webgpu.enabled“ a „gfx.webrender.all“ na stránke about:config.

V prehliadači Chrome bola podpora WebGPU štandardne ponúkaná vo verzii 113, vydanej v máji 2023. V prehliadači Safari sa plánuje, že podpora WebGPU bude štandardne zapnutá túto jeseň (experimentálna podpora je k dispozícii od novembra 2021). Vo Firefoxe je experimentálna podpora WebGPU prítomná od roku 2020, ale štandardne bola zapnutá iba v nočných zostaveniach Firefoxu. Implementácia WebGPU vo Firefoxe je založená na kóde projektu WGPU, napísanom v jazyku Rust a schopnom bežať nad grafickými rozhraniami API Direct3D 12, Vulkan, OpenGL a Metal.

WebGPU poskytuje podobné API ako Vulkan, Metal a Direct3D 12 na vykonávanie operácií na strane GPU. Okrem 3D grafiky pokrýva WebGPU aj možnosti súvisiace s presunutím výpočtov na stranu GPU a vykonávaním shaderov. Koncepčne sa WebGPU líši od starej špecifikácie WebGL podobne, ako sa grafické API Vulkan líši od OpenGL. Zároveň WebGPU nie je založené na konkrétnom grafickom API, ale je to univerzálna vrstva, ktorá používa rovnaké nízkoúrovňové primitívy, aké sú dostupné vo Vulkan, Metal a Direct3D.

WebGPU umožňuje aplikáciám JavaScriptu riadiť organizáciu, spracovanie a prenos príkazov do GPU a spravovať súvisiace zdroje, pamäť, vyrovnávacie pamäte, objekty textúr a kompilované grafické shadery. Tento prístup umožňuje vyšší výkon grafických aplikácií znížením réžie a zvýšením efektivity práce s GPU.

Pomocou WebGPU môžete vytvárať platformovo nezávislé, komplexné 3D projekty, ktoré fungujú rovnako dobre ako samostatné programy priamo používajúce Vulkan, Metal alebo Direct3D. WebGPU tiež poskytuje ďalšie možnosti pre portovanie natívnych grafických programov do formy, ktorú je možné spustiť v prehliadačoch, vďaka kompilácii do WebAssembly.

Kľúčové vlastnosti WebGPU a rozdiely oproti WebGL:

  • Samostatná správa zdrojov, prípravné práce a prenos príkazov do GPU (vo WebGL bol za všetko zodpovedný jeden objekt naraz). K dispozícii sú tri samostatné kontexty: GPUDevice na vytváranie zdrojov, ako sú textúry a vyrovnávacie pamäte; GPUCommandEncoder na kódovanie jednotlivých príkazov vrátane fáz vykresľovania a výpočtu; GPUCommandBuffer má byť zaradený do frontu na spustenie na GPU. Výsledok možno vykresliť v oblasti spojenej s jedným alebo viacerými prvkami plátna alebo spracovať bez výstupu (napríklad pri spúšťaní výpočtových úloh). Oddelenie fáz uľahčuje oddelenie operácií vytvárania a prípravy zdrojov do rôznych obslužných programov, ktoré môžu bežať na rôznych vláknach.
  • Iný prístup k stavom spracovania. WebGPU ponúka dva objekty – GPURenderPipeline a GPUComputePipeline, ktoré umožňujú kombinovať rôzne stavy preddefinované vývojárom, čo umožňuje prehliadaču neplytvať zdrojmi na ďalšiu prácu, ako je prekompilovanie shaderov. Podporované stavy zahŕňajú: shadery, rozloženie vyrovnávacej pamäte vrcholov a atribútov, rozloženie lepivých skupín, prelínanie, hĺbku a vzory a výstupné formáty po vykreslení.
  • Záväzný model podobný funkciám Vulkanu na zoskupovanie zdrojov. Na zoskupenie zdrojov poskytuje WebGPU objekt GPUBindGroup, ktorý možno priradiť k iným podobným objektom na použitie v shaderoch pri písaní príkazov. Vytvorenie takýchto skupín umožňuje ovládaču vykonať potrebné prípravné akcie vopred a prehliadaču umožňuje oveľa rýchlejšie meniť väzby zdrojov medzi volaniami kreslenia. Rozloženie väzieb zdrojov je možné preddefinovať pomocou objektu GPUBindGroupLayout.

Zdroj: opennet.ru

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