W3C esitas mustandi WebGPU standardist

W3C konsortsium esitas esimesed mustandid WebGPU ja WebGPU Shading Language (WGSL) spetsifikatsioonidest, mis mÀÀratlevad API GPU operatsioonide, nagu renderdamine ja arvutused, teostamiseks, samuti shaderite keele GPU poolel töötavate programmide kirjutamiseks. Konceptuaalselt sarnane API-le Vulkan, Metal ja Direct3D 12. Spetsifikatsioonid on koostatud töörĂŒhmaga, kuhu kuuluvaid insenere Mozilla, Google, Apple ja Microsoft.

Konceptuaalselt erineb WebGPU WebGL-st umbes sama palju kui graafiline API Vulkan erineb OpenGL-st, kuid ei pĂ”hine konkreetsel graafilisel API-l, vaid esindab universaalset vahekihti, mis kasutab samu madala taseme primitiive, mis on olemas Vulkanis, Metal'is ja Direct3D-s. WebGPU annab JavaScripti rakendustele madala taseme kontrolli GPU korralduse, töötlemise ja kĂ€skude edastamise ĂŒle, samuti seotud ressursside, mĂ€lu, puutöötlemise, tekstuuriobjektide ja kodeeritud graafiliste shaderite haldamise. Sarnane lĂ€henemine vĂ”imaldab saavutada graafika rakenduste kĂ”rgemat jĂ”udlust madalamatelt kuludelt ja suuremast efektiivsusest GPU-ga.

WebGPU vÔimaldab veebis luua keerulisi 3D-projekte, mis toimivad samavÀÀrselt kui eraldi programmid, mis otse suhelda Vulkan, Metal vÔi Direct3D-ga, kuid ei ole seotud konkreetsete platvormidega. WebGPU pakub ka lisaeeliseid natiivsete graafikaprogrammide portimiseks vormi, mis suudab töötada veebitehnoloogiate alusel, tÀnu WebAssembly'sse kompileerimisele. Lisaks 3D-graafikale katab WebGPU ka vÔimalusi, mis on seotud arvutuste kÀitamise viimisega GPU-le ja shaderite teostamisega.

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