W3C tiżvela abbozz tal-istandard WebGPU

Il-W3C ħareġ l-ewwel abbozzi tal-ispeċifikazzjonijiet tal-WebGPU u l-WebGPU Shading Language (WGSL), li jiddefinixxu APIs għat-twettiq ta 'operazzjonijiet tal-GPU bħal rendering u kompjuters, kif ukoll lingwa shader għall-kitba ta' programmi li jaħdmu fuq il-GPU. kunċettwalment simili għall-APIs Vulkan, Metal u Direct3D 12 L-ispeċifikazzjonijiet ġew ippreparati minn grupp ta 'ħidma li kien jinkludi inġiniera minn Mozilla, Google, Apple u Microsoft.

Kunċettwalment, WebGPU huwa differenti minn WebGL bl-istess mod li l-API tal-grafika Vulkan hija differenti minn OpenGL, iżda mhix ibbażata fuq API tal-grafika speċifika, iżda hija saff universali li juża l-istess primitives ta’ livell baxx misjuba f’Vulkan, Metal u Direct3D. WebGPU jipprovdi applikazzjonijiet JavaScript b'kontroll ta 'livell baxx fuq l-organizzazzjoni, l-ipproċessar u t-trażmissjoni ta' kmandi lill-GPU, il-ġestjoni tar-riżorsi assoċjati, memorja, buffers, oġġetti nisġa u shaders tal-grafiċi kkumpilati. Dan l-approċċ jippermettilek li tikseb prestazzjoni ogħla għall-applikazzjonijiet tal-grafika billi tnaqqas l-ispejjeż ġenerali u żżid l-effiċjenza tax-xogħol mal-GPU.

WebGPU jagħmilha possibbli li jinħolqu proġetti 3D kumplessi għall-Web li ma jaħdmux agħar minn programmi waħedhom li jaċċessaw direttament Vulkan, Metal jew Direct3D, iżda mhumiex marbuta ma' pjattaformi speċifiċi. WebGPU jipprovdi wkoll kapaċitajiet addizzjonali għall-portabbiltà tal-programmi tal-grafika indiġeni f'forma ppermettiet għall-web permezz ta 'kompilazzjoni f'WebAssembly. Minbarra l-grafika 3D, WebGPU jinkludi wkoll kapaċitajiet relatati mal-ħatt ta 'kalkoli għall-GPU u l-eżekuzzjoni ta' shaders.

Karatteristiċi ewlenin tal-WebGPU:

  • Ġestjoni separata tar-riżorsi, xogħol preparatorju u trasmissjoni ta 'kmandi lill-GPU (f'WebGL oġġett wieħed kien responsabbli għal kollox f'daqqa). Tliet kuntesti separati huma pprovduti: GPUDevice għall-ħolqien ta 'riżorsi bħal textures u buffers; GPUCommandEncoder għall-kodifikazzjoni ta' kmandi individwali, inklużi stadji ta' rendering u komputazzjoni; GPUCommandBuffer għandu jitqiegħed fil-kju għall-eżekuzzjoni fuq il-GPU. Ir-riżultat jista 'jiġi mgħoti f'żona assoċjata ma' element tal-kanvas wieħed jew aktar, jew ipproċessat mingħajr output (per eżempju, meta jkunu qed iħaddmu kompiti ta 'komputazzjoni). Is-separazzjoni tal-istadji tagħmilha aktar faċli li tissepara l-ħolqien tar-riżorsi u l-operazzjonijiet ta 'preparazzjoni f'handlers differenti li jistgħu jimxu fuq ħjut differenti.
  • Approċċ differenti għall-istati tal-ipproċessar. WebGPU joffri żewġ oġġetti - GPURenderPipeline u GPUComputePipeline, li jippermettulek tgħaqqad diversi stati definiti minn qabel mill-iżviluppatur, li jippermetti li l-browser ma jaħlix riżorsi fuq xogħol addizzjonali, bħal shaders mill-ġdid. L-istati appoġġjati jinkludu: shaders, vertex buffer u layouts tal-attributi, layouts tal-gruppi li jwaħħlu, taħlit, fond u mudelli, u formati ta 'output ta' wara r-rendi.
  • Mudell li jorbot ħafna bħall-karatteristiċi ta 'raggruppament tar-riżorsi ta' Vulkan. Biex jiġbor ir-riżorsi flimkien, WebGPU jipprovdi oġġett GPUBindGroup, li jista 'jiġi assoċjat ma' oġġetti simili oħra għall-użu fi shaders waqt il-kitba tal-kmandi. Il-ħolqien ta 'gruppi bħal dawn jippermetti lis-sewwieq iwettaq l-azzjonijiet preparatorji meħtieġa minn qabel, u jippermetti lill-browser ibiddel ir-rabta tar-riżorsi bejn is-sejħiet ta' tlugħ ħafna aktar malajr. It-tqassim tal-irbit tar-riżorsi jista' jiġi predefinit bl-użu tal-oġġett GPUBindGroupLayout.

Sors: opennet.ru

Żid kumment