W3C onthul konsep WebGPU-standaard

Die W3C het die eerste konsepte van die WebGPU en WebGPU Shading Language (WGSL) spesifikasies vrygestel, wat API's definieer vir die uitvoering van GPU-bewerkings soos lewering en rekenaar, sowel as 'n skadu-taal vir die skryf van programme wat op die GPU loop. konseptueel soortgelyk aan die Vulkan, Metal en Direct3D 12 API's.Die spesifikasies is voorberei deur 'n werkgroep wat ingenieurs van Mozilla, Google, Apple en Microsoft ingesluit het.

Konseptueel verskil WebGPU van WebGL op baie dieselfde manier as wat die Vulkan grafiese API van OpenGL verskil, maar dit is nie gebaseer op 'n spesifieke grafiese API nie, maar is 'n universele laag wat dieselfde lae-vlak primitiewe gebruik wat in Vulkan, Metal en Direkte 3D. WebGPU bied JavaScript-toepassings met laevlakbeheer oor die organisasie, verwerking en oordrag van opdragte na die GPU, bestuur geassosieerde hulpbronne, geheue, buffers, tekstuurvoorwerpe en saamgestelde grafiese shaders. Hierdie benadering laat jou toe om hoër werkverrigting vir grafiese toepassings te bereik deur oorhoofse koste te verminder en die doeltreffendheid van die werk met die GPU te verhoog.

WebGPU maak dit moontlik om komplekse 3D-projekte vir die web te skep wat nie slegter werk as selfstandige programme wat direk toegang tot Vulkan, Metal of Direct3D het nie, maar nie aan spesifieke platforms gekoppel is nie. WebGPU bied ook bykomende vermoëns vir die oordrag van inheemse grafiese programme in 'n web-geaktiveerde vorm deur samestelling in WebAssembly. Benewens 3D-grafika, bevat WebGPU ook vermoëns wat verband hou met die aflaai van berekeninge na die GPU en die uitvoering van shaders.

Sleutel kenmerke van WebGPU:

  • Afsonderlike bestuur van hulpbronne, voorbereidende werk en oordrag van opdragte na die GPU (in WebGL was een voorwerp op een slag verantwoordelik vir alles). Drie afsonderlike kontekste word verskaf: GPU-toestel vir die skep van hulpbronne soos teksture en buffers; GPUCommandEncoder vir die enkodering van individuele opdragte, insluitend lewering en berekeningstadiums; GPUCommandBuffer om in die tou te staan ​​vir uitvoering op die GPU. Die resultaat kan gelewer word in 'n area wat met een of meer doekelemente geassosieer word, of sonder uitset verwerk word (byvoorbeeld wanneer rekenaartake uitgevoer word). Deur die stadiums te skei, maak dit makliker om hulpbronskepping en voorbereidingsbewerkings te skei in verskillende hanteerders wat op verskillende drade kan loop.
  • 'n Ander benadering tot verwerking van state. WebGPU bied twee voorwerpe - GPURenderPipeline en GPUComputePipeline, wat jou toelaat om verskeie toestande wat vooraf deur die ontwikkelaar gedefinieer is, te kombineer, wat die blaaier toelaat om nie hulpbronne te mors op bykomende werk, soos die hersamestelling van shaders nie. Ondersteunde toestande sluit in: skakerings, hoekpuntbuffer en kenmerkuitlegte, taai groepuitlegte, vermenging, diepte en patrone, en na-weergawe uitsetformate.
  • 'n Bindende model baie soos Vulkan se hulpbrongroeperingskenmerke. Om hulpbronne saam te groepeer, verskaf WebGPU 'n GPUBindGroup-objek, wat met ander soortgelyke voorwerpe geassosieer kan word vir gebruik in shaders terwyl opdragte geskryf word. Die skep van sulke groepe laat die bestuurder toe om vooraf die nodige voorbereidende aksies uit te voer, en laat die blaaier toe om hulpbronbindings tussen trekoproepe baie vinniger te verander. Die uitleg van hulpbronbindings kan vooraf gedefinieer word deur die GPUBindGroupLayout-objek te gebruik.

Bron: opennet.ru

Voeg 'n opmerking