В
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
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.
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
Source: opennet.ru