Firefoxi öisel versioonis on lisatud WebGPU tugi

Uues öiseid Firefoxi versioonides on spetsiifikate tugi WebGPU, pakkudes 3D-graafika ja GPU-poolsete arvutustega tegelemiseks programmeerimise liidest, mis on mõistetavalt sarnane API-ga Vulkan, Metal ja Direct3D 12. Spetsiifikatsiooni arendavad Mozilla, Google, Apple, Microsoft ja kogukonna esindajad töörühmas, mis on loodud W3C organisatsiooni raames.

WebGPU peamine eesmärk on luua turvaline, mugav, ülekantav ja kõrge jõudlusega programmeerimise liides, mida saab kasutada veebiplatvormide 3D-graafika tehnoloogiate ja võimaluste jaoks, mida pakuvad kaasaegsed süsteemigraafika API-d, nagu Direct3D 12 Windowsis, Metal macOS-is ja Vulkan Linuxis. Mõistetavalt erineb WebGPU WebGL-st umbes sama palju nagu Vulkan erineb OpenGL-st, see ei põhine konkreetsetel graafika API-del, vaid esindab universaalset kihistust, mis kasutab üldiselt samu madala taseme primitiive, mis on saadaval Vulkanis, Metal-is ja Direct3D-s.

WebGPU annab JavaScripti rakendustele madalamate tasemete kontrolli GPU-le käskude andmise, käsureeglite haldamise, mälu, puhversalvestite, tekstuuri objektide ja kompileeritud graafikaseente üle. Selline lähenemine võimaldab saavutada suuremat graafikarakenduste jõudlust, vähendades üleüldist koormust ja parandades GPU efektiivsust.

WebGPU võimaldab luua veebis täielikult keerulisi 3D-projekte, mis toimivad sama hästi kui iseseisvad programmid, mis suhtlevad otse Vulkaniga, Metaliga või Direct3D-ga, kuid ei ole seotud konkreetsete platvormidega. WebGPU pakub ka täiendavaid võimalusi natiivsete graafikarakenduste portimiseks vormi, mis suudab töötada veebitehnoloogiate alusel, kasutades WebAssembly tehnoloogiat. Lisaks 3D-graafikale hõlmab WebGPU ka GPU-le arvutuste viimise ja shaderite arendamisega seotud võimalusi. Shaderid kasutada sama nime saab luua WebGPU Shading Language keeles või esitada vaheformaadis SPIR-V, mille järel tõlgitakse need praeguste draiverite toetatavate shadereike keeltesse.

WebGPU rakendab eraldi ressursside, ettevalmistamise ja GPU-le käskude edastamise juhtimist (WebGL-is vastutas üks objekt kõigi eest). Pakutakse kolme eraldi konteksti:
GPUDevice ressursside, nagu tekstuuride ja puhverite loomine; GPUCommandEncoder individuaalsete käskude kodeerimiseks, sealhulgas renderdamise ja arvutamise etappid; GPUCommandBuffer, et saata täitmiseks GPU-sse. Tulemuse saab joonistada ala, mis on seotud ühe või mitme canvas elementiga, või töödelda ilma väljastamiseta (näiteks arvutusülesannete käivitamisel). Etappide eraldamine lihtsustab ressursside loomise ja ettevalmistusoperatsioonide jagamist erinevatesse töötlejatesse, mis võivad toimida erinevates lõimedes.

Teine erinevus WebGPU ja WebGL vahel on teine lähenemine olekute töötlemisel. WebGPU-s on pakkuda kaks objekti — GPURenderPipeline ja GPUComputePipeline, mis võimaldavad arendajal kombineerida erinevaid olekuid, et vähendada brauseri ressursikasutust, vältides täiendavat tööd, nagu shaderite uuesti kompileerimine. Toetatud olekute hulka kuuluvad: shaderid, vertex-bufri ja atribuutide paigutused, kinnitatud gruppide paigutused, segamine, sügavus ja mustrid, väljundiformaadid pärast renderdamist.

Kolmas omadus WebGPU-st on sidumise mudel, mis sarnaneb palju
Vulkani grupi ressursside gruppimise vahenditega.
Ressursside gruppidesse ühendamiseks pakub WebGPU objekti GPUBindGroup, mida saab käskude kirjutamise ajal siduda teiste sarnaste objektidega shaderites kasutamiseks. Selliste gruppide loomine võimaldab draiveril ette valmistada vajalikud ettevalmistustööd ja brauseril võimaldab kiiremini muuta ressursside sidumisi renderdamise kutse vahel. Ressursside sidumiste paigutuse võib eelnevalt määratleda objekti GPUBindGroupLayout abil.

Firefoxi öisel versioonis on lisatud WebGPU tugi

Firefoxis WebGPU aktiveerimiseks about:config-is on seadistus «dom.webgpu.enabled». CanvasContext'i renderdamiseks on samuti vajalik aktiveerida komposiitimisüsteem WebRender «gfx.webrender.all» about:config-is, mis on kirjutatud Rusti keeles ja viib GPU-le lehe sisu renderdamise toimingud. WebGPU rakendamine põhineb projekti koodil
wgpu, mis on kirjutatud Rusti keeles ja töötab DX12, Vulkani ja Metali API peal Linuxis, Androidis, Windowsis ja macOS-is (DX11 ja OpenGL ES 3.0 toetamine on samuti arendamisel). Samal ajal arendab Google teise rakenduse, mis on saadaval Canary harus Chromium aktiveerub lipuga «chrome://flags/#enable-unsafe-webgpu», kuid töötab hetkel ainult macOS ja Windowsis.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster