Chrome jau būs WebGPU atbalsts, un tas būs iespējots pēc noklusējuma

WebGPU Chrome

Pēc gadiem ilgas izstrādes Chrome komanda izlaiž WebGPU

Pirms dažām dienām Google atklāja caur vienu paziņoja WebGPU grafikas API noklusējuma atbalsts un WebGPU ēnošanas valoda (WGSL) Chrome 113 filiālē, kuru plānots izdot 2. maijā.

Tiem, kas nezina par WebGPU, jums tas jāzina nodrošina API, kas ir līdzīga Vulkan, Metal un Direct3D 12 lai veiktu GPU puses darbības, piemēram, renderēšanu un aprēķinu, kā arī ļauj izmantot ēnotāju valodu, lai rakstītu GPU puses programmas.

Par WebGPU

Konceptuāli, WebGPU atšķiras no WebGL tādā pašā veidā, kā Vulkan grafikas API atšķiras no OpenGL, bet WebGPU nav balstīts uz konkrētu grafikas API, drīzāk tas ir vispārējas nozīmes slānis, kas izmanto tos pašus zema līmeņa primitīvus, kas atrodami Vulkan. Metāls un Direct3D. WebGPU nodrošina JavaScript lietojumprogrammas ar zema līmeņa kontroli pār organizāciju, komandu apstrāde un pārsūtīšana uz GPU, saistīto resursu, atmiņas, buferu, tekstūras objektu un kompilēto grafikas ēnotāju pārvaldīšana. Šī pieeja ļauj sasniegt augstākas veiktspējas grafikas lietojumprogrammas, samazinot pieskaitāmās izmaksas un palielinot GPU efektivitāti.

WebGPU ļauj jums izveidot sarežģītus 3D projektus tīmeklim kas darbojas tikpat labi kā atsevišķas programmas, kas tieši izmanto Vulkan, Metal vai Direct3D, bet nav saistītas ar noteiktām platformām. WebGPU nodrošina arī papildu iespējas vietējo grafikas programmu pārnešanai uz Web iespējotu veidlapu, kompilējot WebAssembly. Papildus 3D grafikai WebGPU aptver arī iespējas, kas saistītas ar aprēķinu pārsūtīšanu uz GPU pusi un ēnotāju darbināšanu.

No galvenajām WebGPU funkcijām mēs varam izcelt:

  • Atsevišķa resursu pārvaldība, sagatavošanas darbi un komandu nodošana uz GPU (WebGL viens objekts bija atbildīgs par visu uzreiz). Tiek nodrošināti trīs atsevišķi konteksti: GPUDevice resursu, piemēram, tekstūru un buferu, izveidei; GPUCommandEncoder, lai kodētu atsevišķas komandas, tostarp apstrādes un aprēķina posmus; GPUCommandBuffer, lai pārietu uz GPU izpildes rindu.
    Rezultātu var atveidot apgabalā, kas saistīts ar vienu vai vairākiem audekla vienumiem, vai atveidot bez izvades (piemēram, palaižot skaitļošanas uzdevumus). Statēšana ļauj viegli nodalīt resursu izveides un nodrošināšanas darbības dažādos kontrolleros, kas var darboties dažādos pavedienos.
  • Atšķirīga pieeja stāvokļa apstrādei. WebGPU nodrošina divus objektus, GPURenderPipeline un GPUComputePipeline, kas ļauj apvienot dažādus izstrādātāja iepriekš definētus stāvokļus, ļaujot pārlūkprogrammai netērēt resursus papildu darbam, piemēram, ēnotāju pārkompilēšanai. Atbalstītie stāvokļi ietver: ēnotājus, virsotņu bufera un atribūtu izkārtojumus, fiksētus grupu izkārtojumus, sajaukšanu, dziļumu un modeļus, pēcrenderēšanas izvades formātus.
  • Saistošs modelis, līdzīgi kā Vulkan resursu apvienošanas rīki. Lai grupētu resursus grupās, WebGPU nodrošina GPUBindGroup objektu, ko var saistīt ar citiem līdzīgiem objektiem, lai izmantotu ēnotājus komandu ierakstīšanas laikā.
    Šādu grupu izveide ļauj kontrolierim iepriekš veikt nepieciešamās sagatavošanas darbības un ļauj pārlūkprogrammai daudz ātrāk pārslēgt resursu piesaistes starp izsaukumiem. Resursu saišu izkārtojumu var iepriekš definēt, izmantojot objektu GPUBindGroupLayout.

Papildus pārlūkam Chrome, Eksperimentālais WebGPU atbalsts ir pārbaudīts kopš 2020. gada aprīļa pārlūkprogrammā Firefox un no 2021. gada novembra pārlūkprogrammā Safari. Lai pārlūkprogrammā Firefox iespējotu WebGPU, failā about:config ir jāiestata karodziņi dom.webgpu.enabled un gfx.webgpu.force-enabled.

Pagaidām nav plānots iespējot WebGPU pēc noklusējuma pārlūkprogrammās Firefox un Safari. Firefox un Chrome izstrādātās WebGPU ieviešanas ir pieejamas kā atsevišķas bibliotēkas: Dawn (C++) un wgpu (Rust), ko varat izmantot, lai integrētu WebGPU atbalstu savās lietojumprogrammās.

Jāatzīmē arī tas, ka tiek strādāts pie WebGPU atbalsta pievienošanas populārām JavaScript bibliotēkām, izmantojot WebGL. Piemēram, pilnīgs WebGPU atbalsts jau ir deklarēts failā Babylon.js un daļējs programmā Three.js , PlayCanvas un TensorFlow.js.

Programmas ieviešana WebGPU sākotnēji tiks iespējots tikai ChromeOS, macOS un Windows versijās, savukārt operētājsistēmām Linux un Android WebGPU atbalsts tiks aktivizēts vēlāk.

Visbeidzot, ja jūs interesē uzzināt vairāk par to, varat iepazīties ar informāciju Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.