Chrome'is hĂŒvitab WebGPU tugi

Google teatas, et Chrome 113 haru vabastamisel, mis on planeeritud 2. maiks, lisatakse vaikimisi toeks graafiline API WebGPU ja shaderi keel WGSL (WebGPU Shading Language). WebGPU pakub sarnast programmiliidest nagu Vulkan, Metal ja Direct3D 12 GPU poolel töötavate toimingute, nÀiteks renderdamise ja arvutuste teostamiseks, ning vÔimaldab shaderite keelt, et kirjutada programme, mis töötavad GPU-l. WebGPU rakendamine lisatakse esialgu ainult ChromeOS, macOS ja Windowsi kogumitesse. LINUXi ja Androidi jaoks aktiveeritakse WebGPU tugi hiljem.

Peale Chrome'i testitakse eksperimentaalset WebGPU tuge Firefoxis alates aprillist 2020 ja Safari's alates novembrist 2021. WebGPU lubamiseks Firefoxis tuleb seadete menĂŒĂŒs about:config aktiveerida lipud dom.webgpu.enabled ja gfx.webgpu.force-enabled. Plaanidest WebGPU vaikimisi lubamisel Firefoxis ja Safari's ei ole veel teateid. Firefoxile ja Chrome'ile arendatavad WebGPU rakendused on saadaval kui eraldi teegid — Dawn (C++) ja wgpu (Rust), mida saab kasutada WebGPU toe integreerimiseks oma rakendustes. Samuti tehakse tööd WebGPU toe lisamise nimel populaarsetesse JavaScript-i teekidesse, mis kasutasid algselt WebGL-i. NĂ€iteks on WebGPU tĂ€ielik tugi juba kuulutatud Babylon.js-i jaoks ja osaline tugi Three.js-i, PlayCanvas'i ja TensorFlow.js-i jaoks.

Kontseptuaalselt erineb WebGPU WebGL-ist sama palju kui graafiline API Vulkan erineb OpenGL-ist, kuid WebGPU ei pĂ”hine konkreetsel graafilisel API-l, vaid esindab universaalset kihti, mis kasutab samu madala taseme primitiive, mis on olemas Vulkanis, Metal'is ja Direct3D-s. WebGPU pakub JavaScript-pĂ”histele rakendustele madala taseme kontrolli GPU korralduse, töötlemise ja kĂ€skude edastamise ĂŒle, seotud ressursside, mĂ€lu, puhversĂŒsteemide, tekstuurobjektide ja kompileeritud graafikushaderite haldamise ĂŒle. Selline lĂ€henemine vĂ”imaldab graafikarakenduste kĂ”rgemat jĂ”udlust, vĂ€hendades ĂŒleolekuid ja suurendades GPU tööhĂ”ive efektiivsust.

WebGPU vÔimaldab luua veebis keerulisi 3D-projekte, mis toimivad sama hÀsti kui eraldi programmid, mis kasutavad otse Vulkanit, Metalit vÔi Direct3D, kuid ei ole seotud konkreetsete platvormidega. WebGPU pakub ka tÀiendavaid vÔimalusi natiivsete graafikaprogrammide portimiseks veebitehnoloogiatele, tÀnu kompileerimisele WebAssembly'sse. Lisaks 3D-graafikale hÔlmab WebGPU ka vÔimalusi, mis on seotud arvutuste viimisega GPU-le ja shaderite tÀitmisega.

WebGPU peamised omadused:

  • Eraldi ressursside, ettevalmistustööde ja GPU-dele kĂ€skude edastamine (WebGL-is vastutas ĂŒks objekt kogu selle eest). Pakutakse kolm eraldi konteksti: GPUDevice ressursside, nagu tekstuurid ja puhversalvestus, loomiseks; GPUCommandEncoder eraldi kĂ€skude kodeerimiseks, sealhulgas renderdamise ja arvutamisetappide jaoks; GPUCommandBuffer, et edastada GPU-le tĂ€itmiseks. Tulemusi vĂ”ib joonistada alale, mis on seotud ĂŒhe vĂ”i mitme canvas elementidega, vĂ”i töödelda ilma vĂ€ljundita (nĂ€iteks arvutusĂŒlesannete tĂ€itmisel). Etappide jagamine lihtsustab ressursside loomise ja ettevalmistavate operatsioonide lahus hoidmist erinevates töötlejatest, mis vĂ”ivad töötada erinevates voogudes.
  • Teistsugune lĂ€henemine olekute töötlemisel. WebGPU-s pakutakse kahte objekti — GPURenderPipeline ja GPUComputePipeline, mis vĂ”imaldavad kombineerida erinevaid olekuid, mille on eelnevalt mÀÀratlenud arendaja, mis vĂ”imaldab brauseril mitte raisata ressursse tĂ€iendava töö, nagu shaderite uuesti kompileerimise, tegemiseks. Toetatud olekute hulka kuuluvad: shaderid, vertex bufferite ja atribuutide paigutused, seotud grupide paigutused, segamine, sĂŒgavus ja malle, vĂ€ljundiformaadid pĂ€rast renderdamist.
  • Sidumise mudel, mis meenutab paljuski Vulkanis olemasolevaid ressursside grupi kujundamise vahendeid. WebGPU-s on ressursside rĂŒhmitamiseks ette nĂ€htud objekt GPUBindGroup, mida saab kĂ€skude kirjutamise ajal seondada teiste sarnaste objektidega, et neid shaderites kasutada. Selliste gruppide loomine vĂ”imaldab draiveril eelnevalt vajalikud ettevalmistavad toimingud teostada ja annab brauserile, et ressursside seotusi saaks kiiremini muuta renderdamiskutsude vahel. Ressursside seotuse paigutus vĂ”ib olla eelnevalt mÀÀratud objekti GPUBindGroupLayout abil.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster