Chromella on jo WebGPU-tuki, ja se on oletuksena käytössä

WebGPU Chrome

Vuosien kehitystyön jälkeen Chrome-tiimi julkaisee WebGPU:n

Muutama päivä sitten Google paljasti yhden ilmoitetun kautta WebGPU-grafiikkasovellusliittymän oletustuki ja WebGPU Shading Language (WGSL) Chrome 113 -haarassa, jonka on määrä julkaista 2. toukokuuta.

Niiden, jotka eivät ole tietoisia WebGPU:sta, sinun pitäisi tietää se tarjoaa samanlaisen API:n kuin Vulkan, Metal ja Direct3D 12 suorittaa GPU-puolen toimintoja, kuten renderöintiä ja laskentaa, ja myös mahdollistaa Shader-kielen käytön GPU-puolen ohjelmien kirjoittamiseen.

Tietoja WebGPU: sta

Käsitteellisesti, WebGPU eroaa WebGL:stä samalla tavalla kuin Vulkan-grafiikkasovellusliittymä eroaa OpenGL:stä, mutta WebGPU ei perustu tiettyyn grafiikkasovellusliittymään, vaan se on yleiskäyttöinen kerros, joka käyttää samoja matalan tason primitiivisiä kuin Vulkanissa. Metallia ja Direct3D:tä. WebGPU tarjoaa JavaScript-sovelluksia, jotka hallitsevat organisaatiota matalalla tasolla, prosessoi ja lähettää komentoja GPU:lle, hallitsee niihin liittyviä resursseja, muistia, puskureita, pintakuvioobjekteja ja koottuja grafiikkavarjostimia. Tämän lähestymistavan avulla voit saavuttaa tehokkaampia grafiikkasovelluksia vähentämällä yleiskustannuksia ja lisäämällä GPU-tehokkuutta.

WebGPU voit luoda monimutkaisia ​​3D-projekteja verkkoon jotka toimivat yhtä hyvin kuin erilliset ohjelmat, jotka käyttävät suoraan Vulkan-, Metal- tai Direct3D-ohjelmaa, mutta joita ei ole sidottu tiettyihin alustoihin. WebGPU tarjoaa myös lisävaihtoehtoja alkuperäisten grafiikkaohjelmien siirtämiseen web-yhteensopivalle lomakkeelle kääntämällä WebAssemblyssa. 3D-grafiikan lisäksi WebGPU kattaa myös mahdollisuudet, jotka liittyvät laskutoimitusten siirtämiseen GPU-puolelle ja Shadereiden käyttöön.

WebGPU:n tärkeimmistä ominaisuuksista voimme korostaa seuraavia:

  • Resurssien erillinen 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 käsittely- ja laskentavaiheet; GPUCommandBuffer siirtyäksesi GPU-suoritusjonoon.
    Tulos voidaan renderöidä alueelle, joka liittyy yhteen tai useampaan kanvaskohteeseen, tai se voidaan hahmontaa ilman tulosta (esimerkiksi laskennallisia tehtäviä suoritettaessa). Vaiheiden avulla on helppo erottaa resurssien luonti- ja hallintatoiminnot eri ohjaimiin, jotka voivat toimia eri säikeissä.
  • Erilainen lähestymistapa tilankä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, kiinteät ryhmäasettelut, sekoitus, syvyys ja kuviot, renderöinnin jälkeiset tulostusmuodot.
  • Sitova malli, aivan kuten Vulkanin resurssien yhdistämistyökalut. Resurssien ryhmittelemiseksi ryhmiin WebGPU tarjoaa GPUBindGroup-objektin, joka voidaan sitoa muihin vastaaviin objekteihin käytettäväksi varjostimissa komentojen tallennuksen aikana.
    Tällaisten ryhmien luominen antaa ohjaimelle mahdollisuuden suorittaa tarvittavat valmistelutoimet etukäteen ja selain voi vaihtaa resurssien sidontaa piirtokutsujen välillä paljon nopeammin. Resurssisidosten asettelu voidaan määrittää valmiiksi GPUBindGroupLayout-objektin avulla.

Chromen lisäksi kokeellista WebGPU-tukea on testattu Firefoxissa huhtikuusta 2020 lähtien ja marraskuusta 2021 alkaen Safarissa. Jotta WebGPU voidaan ottaa käyttöön Firefoxissa, sinun on asetettava dom.webgpu.enabled- ja gfx.webgpu.force-enabled-liput tiedostoon about:config.

WebGPU:ta ei ole vielä tarkoitus ottaa oletuksena käyttöön Firefoxissa ja Safarissa. Firefoxille ja Chromelle kehitetyt WebGPU-toteutukset ovat saatavilla erillisinä kirjastoina: Dawn (C++) ja wgpu (Rust), joiden avulla voit integroida WebGPU-tuen sovelluksiisi.

Huomionarvoista on myös, että parhaillaan tehdään töitä WebGPU-tuen lisäämiseksi suosittuihin JavaScript-kirjastoihin natiivisti WebGL:n avulla. Esimerkiksi täydellinen WebGPU-tuki on jo ilmoitettu Babylon.js:ssa ja osittainen Three.js-, PlayCanvas- ja TensorFlow.js-tiedostoissa.

Toteutus WebGPU otetaan aluksi käyttöön vain ChromeOS-, macOS- ja Windows-versioissa, Linuxille ja Androidille WebGPU-tuki aktivoidaan myöhemmin.

Lopuksi, jos haluat tietää enemmän siitä, voit tutustua yksityiskohtiin Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.