Bydd cefnogaeth WebGPU yn cael ei alluogi yn Chrome

Cyhoeddodd Google y gefnogaeth ddiofyn ar gyfer API graffeg WebGPU a WebGPU Shading Language (WGSL) yn Chrome 113, y bwriedir ei ryddhau ar Fai 2. Mae WebGPU yn darparu API tebyg i Vulkan, Metal, a Direct3D 12 ar gyfer perfformio gweithrediadau ochr GPU fel rendro a chyfrifiant, ac mae hefyd yn caniatΓ‘u ichi ddefnyddio iaith arlliwiwr i ysgrifennu rhaglenni ochr GPU. Dim ond mewn adeiladau ar gyfer ChromeOS, macOS, a Windows y bydd gweithrediad WebGPU yn cael ei alluogi i ddechrau. Ar gyfer Linux ac Android, bydd cefnogaeth WebGPU yn cael ei actifadu yn ddiweddarach.

Yn ogystal Γ’ Chrome, mae cefnogaeth WebGPU arbrofol wedi'i brofi ers mis Ebrill 2020 yn Firefox ac ers mis Tachwedd 2021 yn Safari. I alluogi WebGPU yn Firefox, gosodwch y baneri dom.webgpu.enabled a gfx.webgpu.force-enabled yn about:config. Nid oes unrhyw gynlluniau i alluogi WebGPU yn ddiofyn yn Firefox a Safari eto. Mae gweithrediadau WebGPU a ddatblygwyd ar gyfer Firefox a Chrome ar gael ar ffurf llyfrgelloedd ar wahΓ’n - Dawn (C ++) ac wgpu (Rust), y gallwch eu defnyddio i integreiddio cefnogaeth WebGPU i'ch cymwysiadau. Mae gwaith hefyd ar y gweill i ychwanegu cefnogaeth WebGPU at lyfrgelloedd JavaScript poblogaidd sy'n defnyddio WebGL yn frodorol. Er enghraifft, mae cefnogaeth lawn i WebGPU eisoes wedi'i chyhoeddi yn Babylon.js, a chefnogaeth rannol yn Three.js, PlayCanvas a TensorFlow.js.

Yn gysyniadol, mae WebGPU yn wahanol i WebGL yn yr un ffordd i raddau helaeth ag y mae API graffeg Vulkan yn wahanol i OpenGL, ond nid yw WebGPU yn seiliedig ar API graffeg penodol, ond mae'n haen bwrpas cyffredinol sy'n defnyddio'r un cyntefigau lefel isel a geir yn Vulkan, Metel, a Direct3D. Mae WebGPU yn darparu rheolaeth lefel isel i gymwysiadau JavaScript dros drefnu, prosesu a throsglwyddo gorchmynion i'r GPU, rheoli adnoddau cysylltiedig, cof, byfferau, gwrthrychau gwead, a graddwyr graffeg wedi'u llunio. Mae'r dull hwn yn caniatΓ‘u ichi gyflawni cymwysiadau graffeg perfformiad uwch trwy leihau gorbenion a chynyddu effeithlonrwydd y GPU.

Mae WebGPU yn ei gwneud hi'n bosibl creu prosiectau 3D cymhleth ar gyfer y We sy'n gweithio yn ogystal Γ’ rhaglenni annibynnol sy'n defnyddio Vulkan, Metal neu Direct3D yn uniongyrchol, ond nad ydynt yn gysylltiedig Γ’ llwyfannau penodol. Mae'r WebGPU hefyd yn darparu opsiynau ychwanegol ar gyfer trosglwyddo rhaglenni graffeg brodorol i ffurf y gellir ei defnyddio ar y we trwy eu llunio i WebAssembly. Yn ogystal Γ’ graffeg 3D, mae WebGPU hefyd yn ymdrin Γ’'r posibiliadau sy'n gysylltiedig Γ’ dadlwytho cyfrifiadau i ochr GPU a gweithredu arlliwwyr.

Nodweddion allweddol WebGPU:

  • Rheoli adnoddau ar wahΓ’n, gwaith paratoi a throsglwyddo gorchmynion i'r GPU (yn WebGL, roedd un gwrthrych yn gyfrifol am bopeth ar unwaith). Darperir tri chyd-destun ar wahΓ’n: GPUDevice ar gyfer creu adnoddau megis gweadau a byfferau; GPUCommandEncoder ar gyfer amgodio gorchmynion unigol, gan gynnwys y camau rendro a chyfrifo; GPUCommandBuffer i drosglwyddo i'r ciw rhedeg GPU. Gall y canlyniad gael ei rendro mewn ardal sy'n gysylltiedig ag un neu fwy o elfennau cynfas, neu ei rendro heb allbwn (er enghraifft, wrth redeg tasgau cyfrifiannol). Mae gwahanu camau yn ei gwneud hi'n haws gwahanu gweithrediadau creu a darparu adnoddau yn wahanol drinwyr a all redeg ar wahanol edafedd.
  • Dull gwahanol o drin cyflyrau. Mae WebGPU yn darparu dau wrthrych - GPURenderPipeline a GPUComputePipeline, sy'n eich galluogi i gyfuno gwahanol daleithiau a ddiffiniwyd ymlaen llaw gan y datblygwr, sy'n ei gwneud hi'n bosibl i'r porwr beidio Γ’ gwastraffu adnoddau ar waith ychwanegol, megis ail-grynhoi graddwyr. Mae gwladwriaethau a gefnogir yn cynnwys: arlliwwyr, gosodiadau byffer vertex a phriodoleddau, cynlluniau grΕ΅p gludiog, asio, dyfnder a phatrymau, fformatau allbwn Γ΄l-rendr.
  • Model rhwymol, yn debyg iawn i offer grwpio adnoddau Vulkan. Er mwyn grwpio adnoddau yn grwpiau, mae'r WebGPU yn darparu gwrthrych GPUBindGroup, a all, ar adeg ysgrifennu'r gorchmynion, fod yn gysylltiedig Γ’ gwrthrychau tebyg eraill i'w defnyddio mewn cysgodwyr. Mae creu grwpiau o'r fath yn caniatΓ‘u i'r gyrrwr gyflawni'r camau paratoadol angenrheidiol ymlaen llaw, ac yn caniatΓ‘u i'r porwr newid rhwymiadau adnoddau rhwng galwadau tynnu yn llawer cyflymach. Gellir rhagddiffinio cynllun rhwymiadau adnoddau gan ddefnyddio gwrthrych GPUBindGroupLayout.

Ffynhonnell: opennet.ru

Ychwanegu sylw