„Chrome“ jau palaikys „WebGPU“ ir bus įjungta pagal numatytuosius nustatymus

WebGPU Chrome

Po daugelio metų kūrimo „Chrome“ komanda išleidžia „WebGPU“.

Prieš kelias dienas „Google“ pristatė per vieną paskelbė numatytasis WebGPU grafikos API palaikymas ir „WebGPU Shading Language“ (WGSL) Chrome 113 filiale, kurį planuojama išleisti gegužės 2 d.

Tiems, kurie nežino apie WebGPU, turėtumėte tai žinoti teikia API, panašią į Vulkan, Metal ir Direct3D 12 atlikti GPU operacijas, tokias kaip atvaizdavimas ir skaičiavimas, taip pat leidžia naudoti šešėlinę kalbą GPU programoms rašyti.

Apie „WebGPU“

Konceptualiai, „WebGPU“ skiriasi nuo „WebGL“ taip pat, kaip „Vulkan“ grafikos API skiriasi nuo „OpenGL“, tačiau „WebGPU“ nėra pagrįstas konkrečia grafine API, veikiau tai yra bendrosios paskirties sluoksnis, kuriame naudojami tie patys žemo lygio primityvai, esantys „Vulkan“. Metalas ir Direct3D. WebGPU suteikia „JavaScript“ programas su žemo lygio organizacijos valdymu, apdoroja ir perduoda komandas į GPU, valdo susijusius išteklius, atmintį, buferius, tekstūros objektus ir sudarytus grafikos atspalvius. Šis metodas leidžia pasiekti didesnio našumo grafikos programas sumažinant pridėtines išlaidas ir padidinant GPU efektyvumą.

„WebGPU“ leidžia kurti sudėtingus 3D projektus internetui kurios veikia taip pat gerai, kaip ir atskiros programos, kurios tiesiogiai naudoja Vulkan, Metal arba Direct3D, bet nėra susietos su konkrečiomis platformomis. WebGPU taip pat suteikia papildomų vietinių grafikos programų perkėlimo parinkčių į žiniatinklio formą, sukompiliuojant WebAssembly. Be 3D grafikos, WebGPU taip pat apima galimybes, susijusias su skaičiavimų perkėlimu į GPU pusę ir šešėlių paleidimu.

Iš pagrindinių WebGPU funkcijų galime išskirti šiuos dalykus:

  • Atskiras išteklių valdymas, parengiamieji darbai ir komandų perdavimas į GPU (WebGL vienas objektas buvo atsakingas už viską iš karto). Pateikiami trys atskiri kontekstai: GPUDevice ištekliams, tokiems kaip tekstūros ir buferiai, kurti; GPUCommandEncoder, skirtas koduoti atskiras komandas, įskaitant apdorojimo ir skaičiavimo etapus; GPUCommandBuffer, kad perduotų į GPU vykdymo eilę.
    Rezultatas gali būti pateiktas srityje, susietoje su vienu ar daugiau drobės elementų, arba be išvesties (pavyzdžiui, vykdant skaičiavimo užduotis). Suskirstymas leidžia lengvai atskirti išteklių kūrimo ir aprūpinimo operacijas į skirtingus valdiklius, kurie gali veikti skirtingose ​​gijose.
  • Kitoks požiūris į valstybės valdymą. WebGPU pateikia du objektus – GPURenderPipeline ir GPUComputePipeline, kurie leidžia derinti skirtingas kūrėjo iš anksto nustatytas būsenas, todėl naršyklė gali nešvaistyti išteklių papildomam darbui, pavyzdžiui, perkompiliuoti atspalvius. Palaikomos būsenos: šešėliai, viršūnių buferis ir atributų išdėstymai, fiksuoti grupių išdėstymai, maišymas, gylis ir modeliai, išvesties formatai po pateikimo.
  • Įpareigojantis modelis, panašus į „Vulkan“ išteklių telkimo įrankius. Norėdami sugrupuoti išteklius į grupes, WebGPU pateikia GPUBindGroup objektą, kuris gali būti susietas su kitais panašiais objektais ir naudojamas šešėliuose komandų įrašymo metu.
    Sukūrus tokias grupes, valdiklis gali iš anksto atlikti reikiamus parengiamuosius veiksmus ir leidžia naršyklei daug greičiau perjungti išteklių susiejimą tarp piešimo iškvietimų. Išteklių susiejimo išdėstymas gali būti iš anksto nustatytas naudojant GPUBindGroupLayout objektą.

Be „Chrome“, eksperimentinis „WebGPU“ palaikymas „Firefox“ buvo išbandytas nuo 2020 m. balandžio mėn ir nuo 2021 m. lapkričio mėn. „Safari“. Norėdami įgalinti WebGPU naršyklėje Firefox, apie:config turite nustatyti žymas dom.webgpu.enabled ir gfx.webgpu.force-enabled.

Kol kas neketinama įjungti WebGPU pagal numatytuosius nustatymus „Firefox“ ir „Safari“. „Firefox“ ir „Chrome“ sukurtus WebGPU diegimus galima naudoti kaip atskiras bibliotekas: Dawn (C++) ir wgpu (Rust), kurias galite naudoti norėdami integruoti WebGPU palaikymą į savo programas.

Taip pat reikia atkreipti dėmesį į tai, kad vyksta darbas siekiant pridėti WebGPU palaikymą populiariose JavaScript bibliotekose, naudojant WebGL. Pavyzdžiui, visas WebGPU palaikymas jau deklaruotas Babylon.js, o dalinis - Three.js , PlayCanvas ir TensorFlow.js.

Programos įgyvendinimas „WebGPU“ iš pradžių bus įgalintas tik „ChromeOS“, „MacOS“ ir „Windows“ versijose, o Linux ir Android WebGPU palaikymas bus suaktyvintas vėliau.

Galiausiai, jei jus domina daugiau apie tai sužinoti, galite susipažinti su išsamia informacija Šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.