Firefox un Safari iegūs WebGPU atbalstu

Mozilla ir nolēmusi iespējot WebGPU API un WGSL (WebGPU ēnošanas valodas) atbalstu pārlūkprogrammā Firefox. Platformai Windows WebGPU atbalsts tiks iespējots pēc noklusējuma Firefox 141 versijā, kas ir paredzēta 22. jūlijā. Pēc tam ir paredzēts, ka WebGPU atbalsts tiks iespējots versijās turpmākajos mēnešos: Linux и macOS, un pēc kāda laika platformas versijā AndroidLai manuāli iespējotu WebGPU, varat izmantot parametrus "dom.webgpu.enabled" un "gfx.webrender.all" lapā about:config.

Pārlūkā Chrome WebGPU atbalsts pēc noklusējuma tika piedāvāts 113. versijā, kas tika izlaista 2023. gada maijā. Pārlūkā Safari WebGPU atbalstu ir plānots iespējot pēc noklusējuma šoruden (eksperimentāls atbalsts ir pieejams kopš 2021. gada novembra). Pārlūkā Firefox eksperimentāls WebGPU atbalsts ir pieejams kopš 2020. gada, bet pēc noklusējuma tas tika iespējots tikai Firefox nakts versijās. Firefox WebGPU ieviešana ir balstīta uz WGPU projekta kodu, kas rakstīts Rust valodā un spēj darboties virs Direct3D 12, Vulkan, OpenGL un Metal grafikas API.

WebGPU nodrošina līdzīgu API kā Vulkan, Metal un Direct3D 12 operāciju veikšanai GPU pusē. Papildus 3D grafikai WebGPU aptver arī iespējas, kas saistītas ar aprēķinu pārvietošanu uz GPU pusi un ēnotāju izpildi. Konceptuāli WebGPU atšķiras no vecās WebGL specifikācijas līdzīgi kā Vulkan grafikas API atšķiras no OpenGL. Tajā pašā laikā WebGPU nav balstīts uz konkrētu grafikas API, bet gan ir universāls slānis, kas izmanto tos pašus zemā līmeņa primitīvus, kas ir pieejami Vulkan, Metal un Direct3D.

WebGPU ļauj JavaScript lietojumprogrammām kontrolēt komandu organizēšanu, apstrādi un pārsūtīšanu uz GPU, kā arī pārvaldīt saistītos resursus, atmiņu, buferus, tekstūras objektus un kompilētos grafikas ēnotājus. Šī pieeja nodrošina grafikas lietojumprogrammu augstāku veiktspēju, samazinot papildu slodzi un palielinot GPU darba efektivitāti.

Izmantojot WebGPU, varat izveidot platformas ziņā neatkarīgus, sarežģītus 3D projektus, kas darbojas tikpat labi kā patstāvīgas programmas, kas tieši izmanto Vulkan, Metal vai Direct3D. WebGPU nodrošina arī papildu iespējas vietējo grafikas programmu pārnešanai uz formātu, kas var darboties pārlūkprogrammās, pateicoties kompilācijai WebAssembly formātā.

WebGPU galvenās iezīmes un atšķirības no WebGL:

  • Atsevišķa resursu pārvaldība, sagatavošanas darbi un komandu pārsūtīš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 atsevišķu komandu kodēšanai, ieskaitot renderēšanas un aprēķināšanas posmus; GPUCommandBuffer, kas jāievieto rindā izpildei GPU. Rezultātu var atveidot apgabalā, kas saistīts ar vienu vai vairākiem audekla elementiem, vai apstrādāt bez izvades (piemēram, palaižot skaitļošanas uzdevumus). Atdalot posmus, ir vieglāk nodalīt resursu izveides un sagatavošanas darbības dažādos apstrādātājos, kas var darboties dažādos pavedienos.
  • Atšķirīga pieeja apstrādei. WebGPU piedāvā divus objektus – GPURenderPipeline un GPUComputePipeline, kas ļauj apvienot dažādus izstrādātāja iepriekš definētus stāvokļus, kas ļauj pārlūkprogrammai netērēt resursus papildu darbam, piemēram, ēnotāju pārkompilēšanai. Atbalstītie stāvokļi ir: ēnotāji, virsotņu bufera un atribūtu izkārtojumi, lipīgo grupu izkārtojumi, sajaukšana, dziļums un modeļi, kā arī pēcrenderēšanas izvades formāti.
  • Saistošs modelis, kas līdzīgs Vulkan resursu grupēšanas funkcijām. Lai grupētu resursus, WebGPU nodrošina GPUBindGroup objektu, ko var saistīt ar citiem līdzīgiem objektiem, lai tos izmantotu ēnotājos, rakstot komandas. Šādu grupu izveide ļauj draiverim iepriekš veikt nepieciešamās sagatavošanas darbības, kā arī ļauj pārlūkprogrammai daudz ātrāk mainīt resursu piesaisti starp izsaukumiem. Resursu saišu izkārtojumu var iepriekš definēt, izmantojot objektu GPUBindGroupLayout.

Avots: opennet.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster