Firefox ja Safari saavat WebGPU-tuen

Mozilla on päättänyt ottaa käyttöön WebGPU API:n ja WGSL:n (WebGPU Shading Language) tuen Firefoxissa. Alustalle Windows WebGPU-tuki otetaan oletuksena käyttöön Firefox 141:ssä, ja sen on määrä tulla käyttöön 22. heinäkuuta. WebGPU-tuen on määrä tulla käyttöön seuraavien kuukausien koontiversioissa: Linux и macOS, ja jonkin ajan kuluttua alustan versiossa AndroidVoit ottaa WebGPU:n käyttöön manuaalisesti käyttämällä about:config-sivulla olevia parametreja "dom.webgpu.enabled" ja "gfx.webrender.all".

Chromessa WebGPU-tuki tarjottiin oletuksena versiossa 113, joka julkaistiin toukokuussa 2023. Safarissa WebGPU-tuen on tarkoitus olla oletuksena käytössä tänä syksynä (kokeellinen tuki on ollut saatavilla marraskuusta 2021 lähtien). Firefoxissa kokeellinen WebGPU-tuki on ollut käytössä vuodesta 2020 lähtien, mutta se oli oletuksena käytössä vain Firefoxin öisissä koontiversioissa. Firefoxin WebGPU-toteutus perustuu WGPU-projektikoodiin, joka on kirjoitettu Rustilla ja pystyy toimimaan Direct3D 12-, Vulkan-, OpenGL- ja Metal-grafiikkarajapintojen päällä.

WebGPU tarjoaa samanlaisen API:n kuin Vulkan, Metal ja Direct3D 12 toimintojen suorittamiseen GPU-puolella. 3D-grafiikan lisäksi WebGPU kattaa myös ominaisuudet, jotka liittyvät laskelmien siirtämiseen GPU-puolelle ja varjostimien suorittamiseen. Käsitteellisesti WebGPU eroaa vanhasta WebGL-spesifikaatiosta paljolti samalla tavalla kuin Vulkanin grafiikka-API eroaa OpenGL:stä. Samaan aikaan WebGPU ei perustu tiettyyn grafiikka-API:in, vaan on universaali kerros, joka käyttää samoja matalan tason primitiivejä, jotka ovat saatavilla Vulkanissa, Metalissa ja Direct3D:ssä.

WebGPU mahdollistaa JavaScript-sovellusten hallita komentojen organisointia, käsittelyä ja lähettämistä GPU:lle sekä hallita niihin liittyviä resursseja, muistia, puskureita, tekstuuriobjekteja ja käännettyjä grafiikkasuorittimia. Tämä lähestymistapa parantaa grafiikkasovellusten suorituskykyä vähentämällä yleiskuluja ja lisäämällä GPU:n tehokkuutta.

WebGPU:n avulla voit luoda alustariippumattomia, monimutkaisia 3D-projekteja, jotka toimivat yhtä hyvin kuin itsenäiset ohjelmat, jotka käyttävät suoraan Vulkania, Metalia tai Direct3D:tä. WebGPU tarjoaa myös lisäominaisuuksia natiivien grafiikkaohjelmien siirtämiseen selaimissa toimivaan muotoon WebAssembly-kääntämisen ansiosta.

WebGPU:n tärkeimmät ominaisuudet ja erot WebGL:ään verrattuna:

  • Erillinen resurssien hallinta, valmistelutyöt ja komentojen välitys GPU:lle (WebGL:ssä yksi objekti vastasi kaikesta kerralla). Tarjolla on kolme erillistä kontekstia: GPUDevice resurssien, kuten pintakuvioiden ja puskureiden, luomiseen; GPUCommandEncoder yksittäisten komentojen koodaamiseen, mukaan lukien renderöinti- ja laskentavaiheet; GPUCommandBuffer jonoon GPU:ssa suoritettavaa varten. Tulos voidaan renderöidä alueelle, joka liittyy yhteen tai useampaan kanvaselementtiin, tai se voidaan käsitellä ilman tulosta (esimerkiksi laskentatehtäviä suoritettaessa). Vaiheiden erottaminen helpottaa resurssien luonti- ja valmistelutoimintojen erottamista eri käsittelijöiksi, jotka voivat toimia eri säikeissä.
  • Erilainen lähestymistapa tilojen käsittelyyn. WebGPU tarjoaa kaksi objektia - GPURenderPipeline ja GPUComputePipeline, joiden avulla voit yhdistää erilaisia ​​kehittäjän ennalta määrittämiä tiloja, jolloin selain ei tuhlaa resursseja lisätyöhön, kuten varjostajien uudelleen kääntämiseen. Tuettuja tiloja ovat: varjostimet, vertex-puskuri- ja attribuuttiasettelut, tahmeat ryhmäasettelut, sekoitus, syvyys ja kuviot sekä renderöinnin jälkeiset tulostusmuodot.
  • Sitova malli, joka muistuttaa paljon Vulkanin resurssien ryhmittelyominaisuuksia. Resurssien ryhmittelyä varten WebGPU tarjoaa GPUBindGroup-objektin, joka voidaan liittää muihin vastaaviin objekteihin käytettäväksi varjostimissa komentojen kirjoittamisen aikana. Tällaisten ryhmien luominen antaa kuljettajalle mahdollisuuden suorittaa tarvittavat valmistelutoimet etukäteen, ja selain voi muuttaa resurssien sidontaa piirtokutsujen välillä paljon nopeammin. Resurssisidosten asettelu voidaan määrittää valmiiksi GPUBindGroupLayout-objektin avulla.

Lähde: opennet.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster