Ko nga mahi a Firefox i ia po kei roto ko te tautoko WebGPU

В po Ka hanga a Firefox puta mai tautoko whakaritenga PaetukutukuPP, e whakarato ana i te atanga hotaka mo te tukatuka whakairoiro 3D me te rorohiko taha GPU, he rite te ahua ki te API. puia, Metal и Hāngai3D 12. Kei te whanakehia e Mozilla, Google, Apple, Microsoft me nga mema o te hapori roopu mahi, i hangaia e te whakahaere W3C.

Ko te whainga matua o WebGPU ko te whakarato i tetahi atanga whakamaoritanga haumaru, ratarata-kaiwhakamahi, kawe, me te mahi nui mo te papaaho Tukutuku ki te whakamahi i nga hangarau whakairoiro 3D me nga kaha e whakaratohia ana e nga API whakairoiro punaha hou, penei i te Direct3D 12 i runga Windows, Metal. i runga macOS, me Vulkan i Linux. Ko te tikanga, he rereke te WebGPU mai i te WebGL he rite tonu te rerekee o Vulkan ki te OpenGL, i te wa ano kaore i te hangai i runga i tetahi API whakairoiro motuhake, engari he paparanga ao e whakamahi ana i nga ahuatanga o mua o te taumata iti e kitea ana i Vulkan, Metal me Direct3D.

Ko te WebGPU e whakarato ana i nga tono JavaScript me te mana taumata-iti ki runga i te whakahaere, te tukatuka, me te tuku o nga whakahau ki te GPU, te whakahaere i nga rauemi e pa ana, te mahara, te aukati, nga mea kakano, me nga whakamarumaru whakairoiro whakahiato. Ma tenei huarahi ka taea e koe te whakatutuki i nga mahi teitei ake mo nga tono whakairoiro ma te whakaiti i nga utu o runga ake me te whakanui ake i te pai o te mahi me te GPU.

Ka taea e WebGPU te hanga kaupapa 3D matatini katoa mo te Tukutuku kaore i te kino atu i nga kaupapa motuhake e uru tika ana ki a Vulkan, Metal, Direct3D ranei, engari kaore e herea ki nga papaaho motuhake. Ka whakarato ano hoki a WebGPU i etahi atu kaha ki te kawe i nga kaupapa whakairoiro taketake ki roto i te puka-tukutuku ma te whakamahi i te hangarau WebAssembly. I tua atu i nga whakairoiro 3D, kei te hipoki ano hoki a WebGPU i nga kaha e pa ana ki te whakaheke i nga tatauranga ki te GPU me te tautoko i te whanaketanga o te atarangi. Kaimarumaru pea ka hangaia ki te WebGPU Shading Language, ka tohua ranei ki te whakatakotoranga SPIR-V takawaenga, ka whakamaoritia ki nga reo whakamarumaru e tautokohia ana e nga taraiwa o naianei.

Ka whakamahia e WebGPU te whakahaere motuhake o nga rauemi, nga mahi whakarite, me te tuku whakahau ki te GPU (i roto i te WebGL, ko tetahi mea te kawenga mo nga mea katoa i te wa kotahi). E toru nga horopaki motuhake e whakaratohia ana:
GPUDevice mo te hanga rauemi penei i nga kakano me nga parepare; GPUCommandEncoder mo te whakawaehere i nga whakahau takitahi, tae atu ki nga waahanga whakaputa me te tatauranga; GPUCommandBuffer kia tutiraa mo te mahi i runga i te GPU. Ka taea te whakaputa i te hua ki tetahi waahi e hono ana ki tetahi, neke atu ranei nga huānga kānawehi, ka tukatukahia kaore he putanga (hei tauira, i te wa e whakahaere ana i nga mahi rorohiko). Ma te wehewehe i nga waahanga ka ngawari ake te wehe i nga mahi hanga rauemi me nga mahi whakarite ki nga kaikawe rereke ka taea te whakahaere i runga i nga miro rereke.

Ko te rereketanga tuarua i waenga i te WebGPU me te WebGL he huarahi rereke ki te whakahaere i nga kawanatanga. Ka tukuna e WebGPU nga taonga e rua - GPURenderPipeline me GPUComputePipeline, ka taea e koe te whakakotahi i nga momo whenua kua tautuhia e te kaiwhakawhanake, ka taea e te kaitirotiro te kore e moumou rauemi mo etahi atu mahi, penei i te whakahiato i nga atarangi. Ko nga ahuatanga e tautokohia ana ko: nga whakamarumaru, te papaaa poupou me nga whakatakotoranga huanga, nga whakatakotoranga roopu piri, te whakakotahitanga, te hohonu me nga tauira, me nga whakatakotoranga whakaputa i muri i te tuku.

Ko te waahanga tuatoru o te WebGPU e kiia ana ko te tauira here, te nuinga
he maumahara ki nga taputapu whakarōpū rauemi kei Vulkan.
Hei whakarōpū i nga rauemi, ka whakaratohia e WebGPU he ahanoa GPUBindGroup, ka taea te hono atu ki etahi atu mea rite mo te whakamahi i nga atarangi i te wa e tuhi ana nga whakahau. Ko te hanga i enei roopu ka taea e te taraiwa te mahi i nga mahi whakatikatika e tika ana i mua, ka taea e te kaitirotiro te whakarereke i nga hononga rauemi i waenga i nga waea tuhi kia tere ake. Ka taea te tautuhi i te whakatakotoranga o nga here rauemi ma te whakamahi i te ahanoa GPUBindGroupLayout.

Ko nga mahi a Firefox i ia po kei roto ko te tautoko WebGPU

I roto i te Firefox, ka whakaratohia te tautuhinga "dom.webgpu.enabled" i roto i te about:config kia taea ai te WebGPU. Ko te whakaputanga CanvasContext me whakahohea te tito Kaituku Paetukutuku ("gfx.webrender.all" mo: config), i tuhia ki te Rust me nga mahi whakaputa ihirangi wharangi ki waho ki te GPU. Ko te whakatinanatanga WebGPU kei runga i te waehere kaupapa
wgpu, i tuhia ki te Rust me te kaha ki te rere ki runga ake o nga API DX12, Vulkan me Metal i runga i te Linux, Android, Windows me te macOS (kei te whakawhanake ano te tautoko DX11 me OpenGL ES 3.0). I roto i te whakarara, kei te whakawhanake a Google i tetahi atu whakatinanatanga, e waatea ana i roto Peka Canary Chromium ka taea te whakamahi i te haki "chrome://flags/#enable-unsafe-webgpu", engari i tenei wa ka mahi noa ki runga macOS me Windows.

Source: opennet.ru

Tāpiri i te kōrero