Mae adeiladau nosweithiol Firefox bellach yn cynnwys cefnogaeth WebGPU

В nos Mae Firefox yn adeiladu ymddangos cefnogaeth manyleb GweGPU, sy'n darparu rhyngwyneb rhaglennu ar gyfer prosesu graffeg 3D a chyfrifiadura ochr GPU, yn gysyniadol debyg i'r API Vulkan, Metel и Uniongyrchol 3D 12. Mae'r fanyleb yn cael ei datblygu gan Mozilla, Google, Apple, Microsoft ac aelodau'r gymuned yn gweithgor, a grëwyd gan y sefydliad W3C.

Nod allweddol WebGPU yw darparu rhyngwyneb rhaglennu diogel, hawdd ei ddefnyddio, cludadwy a pherfformiad uchel ar gyfer y platfform Gwe i drosoli'r technolegau graffeg 3D a'r galluoedd a ddarperir gan APIs graffeg system fodern, megis Direct3D 12 ar Windows, Metal ar macOS, a Vulkan ar Linux. Yn gysyniadol, mae WebGPU yn wahanol i WebGL yn yr un ffordd i raddau helaeth ag y mae Vulkan yn wahanol i OpenGL, ac ar yr un pryd nid yw'n seiliedig ar API graffeg penodol, ond mae'n haen gyffredinol sy'n gyffredinol yn defnyddio'r un cyntefigau lefel isel a geir yn Vulkan, Metel a Direct3D.

Mae WebGPU yn darparu rheolaeth lefel is i gymwysiadau JavaScript dros drefnu, prosesu a throsglwyddo gorchmynion i'r GPU, gan reoli adnoddau cysylltiedig, cof, byfferau, gwrthrychau gwead, a graddwyr graffeg wedi'u llunio. Mae'r dull hwn yn caniatáu ichi gyflawni perfformiad uwch ar gyfer cymwysiadau graffeg trwy leihau costau gorbenion a chynyddu effeithlonrwydd gweithio gyda'r GPU.

Mae WebGPU yn ei gwneud hi'n bosibl creu prosiectau 3D cymhleth llawn ar gyfer y We nad ydynt yn gweithio'n waeth na rhaglenni annibynnol sy'n cyrchu Vulkan, Metal neu Direct3D yn uniongyrchol, ond nad ydynt yn gysylltiedig â llwyfannau penodol. Mae WebGPU hefyd yn darparu galluoedd ychwanegol wrth drosglwyddo rhaglenni graffeg brodorol i ffurf y gellir ei defnyddio ar y we trwy ddefnyddio technoleg WebAssembly. Yn ogystal â graffeg 3D, mae WebGPU hefyd yn ymdrin â galluoedd sy'n ymwneud â dadlwytho cyfrifiadau i'r GPU a chefnogi datblygiad lliwiwr. Shaders Gall cael ei greu yn Iaith Cysgodi WebGPU neu ei nodi yn y fformat SPIR-V canolradd, ac yna ei gyfieithu i ieithoedd shader a gefnogir gan yrwyr cyfredol.

Mae WebGPU yn defnyddio rheolaeth 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 fel gweadau a byfferau; GPUCommandEncoder ar gyfer amgodio gorchmynion unigol, gan gynnwys camau rendro a chyfrifiant; GPUCommandBuffer i'w giwio i'w weithredu ar y GPU. Gall y canlyniad gael ei rendro mewn ardal sy'n gysylltiedig ag un neu fwy o elfennau cynfas, neu ei brosesu heb allbwn (er enghraifft, wrth redeg tasgau cyfrifiadurol). Mae gwahanu'r camau yn ei gwneud hi'n haws gwahanu gweithrediadau creu a pharatoi adnoddau yn wahanol drinwyr a all redeg ar wahanol edafedd.

Mae'r ail wahaniaeth rhwng WebGPU a WebGL yn ddull gwahanol o drin gwladwriaethau. Mae WebGPU yn cynnig dau wrthrych - GPURenderPipeline a GPUComputePipeline, sy'n eich galluogi i gyfuno gwahanol wladwriaethau a ddiffiniwyd ymlaen llaw gan y datblygwr, sy'n caniatáu 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, a fformatau allbwn ôl-rendr.

Gelwir trydydd nodwedd WebGPU yn fodel rhwymol, i raddau helaeth
sy'n atgoffa rhywun o'r offer grwpio adnoddau sy'n bresennol yn Vulkan.
Er mwyn grwpio adnoddau gyda'i gilydd, mae WebGPU yn darparu gwrthrych GPUBindGroup, y gellir ei gysylltu â gwrthrychau tebyg eraill i'w defnyddio mewn cysgodwyr wrth ysgrifennu gorchmynion. 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.

Mae adeiladau nosweithiol Firefox bellach yn cynnwys cefnogaeth WebGPU

Yn Firefox, darperir y gosodiad “dom.webgpu.enabled” yn about:config i alluogi WebGPU. Mae rendro CanvasContext hefyd yn gofyn am alluogi cyfansoddi WebRender (“gfx.webrender.all” yn about:config), wedi'i ysgrifennu yn Rust ac yn allanoli gweithrediadau rendro cynnwys tudalen i'r GPU. Mae gweithredu WebGPU yn seiliedig ar god prosiect
wgpu, wedi'i ysgrifennu yn Rust ac yn gallu rhedeg ar ben yr APIs DX12, Vulkan a Metal ar Linux, Android, Windows a macOS (mae cefnogaeth DX11 ac OpenGL ES 3.0 hefyd yn cael ei ddatblygu). Ar yr un pryd, mae Google yn datblygu gweithrediad arall, sydd ar gael yn Cangen Dedwydd Chromium ac mae wedi'i alluogi gan ddefnyddio'r faner “chrome://flags/#enable-unsafe-webgpu”, ond hyd yn hyn dim ond ar macOS a Windows y mae'n gweithio.

Ffynhonnell: opennet.ru

Ychwanegu sylw