Bidh W3C a’ nochdadh dreachd inbhe WebGPU

Консорциум W3C представил первые черновые варианты спецификаций WebGPU и WebGPU Shading Language (WGSL), определяющих API для выполнения операций на GPU, таких как рендеринг и вычисления, а также язык шейдров для написания программ, работающих на стороне GPU. концептуально схожий с API Vulkan, Metal и Direct3D 12. Спецификации подготовлены рабочей группой, в которую вошли инженеры из Mozilla, Google, Apple и Microsoft.

Концептуально WebGPU отличается от WebGL примерно так же, как графический API Vulkan отличается от OpenGL, но при этом не основывается на конкретном графическом API, а представляет собой универсальную прослойку, использующую те же низкоуровневые примитивы, что имеются в Vulkan, Metal и Direct3D. WebGPU предоставляет приложениям на JavaScript средства для низкоуровневого контроля за организацией, обработкой и передачей команд к GPU, управления связанными ресурсами, памятью, буферами, объектами текстур и скомпилированными графическими шейдерами. Подобный подход позволяет добиться более высокой производительности графических приложений за счёт снижения накладных расходов и повышения эффективности работы с GPU.

WebGPU даёт возможность создавать для Web сложные 3D-проекты, работающие не хуже, чем обособленные программы, напрямую обращающиеся с Vulkan, Metal или Direct3D, но не привязанные к конкретным платформам. WebGPU также предоставляет дополнительные возможности при портировании нативных графических программ в форму, способную работать на базе web-технологий, благодаря компиляции в WebAssembly. Кроме 3D-графики WebGPU охватывает и возможности, связанные с выносом вычислений на сторону GPU и выполнением шейдеров.

Prìomh fheartan WebGPU:

  • Riaghladh ghoireasan air leth, obair ullachaidh agus tar-chuir òrdughan chun GPU (ann an WebGL bha aon nì an urra ris a h-uile càil aig an aon àm). Tha trì co-theacsan eadar-dhealaichte air an toirt seachad: GPUInneal airson goireasan a chruthachadh leithid inneach agus bufairean; GPUCommandEncoder airson òrdughan fa leth a chòdachadh, a’ gabhail a-steach ìrean tairgse agus àireamhachadh; GPUCommandBuffer gu bhith air a chiudha airson a chur gu bàs air an GPU. Faodar an toradh a thoirt seachad ann an raon co-cheangailte ri aon no barrachd eileamaidean canabhas, no a phròiseasadh gun toradh (mar eisimpleir, nuair a bhios tu a’ ruith gnìomhan coimpiutaireachd). Le bhith a’ sgaradh nan ìrean ga dhèanamh nas fhasa obair cruthachaidh is ullachaidh ghoireasan a sgaradh gu diofar làimhseachadh a dh’ fhaodas ruith air diofar snàithleanan.
  • Dòigh-obrach eadar-dhealaichte airson stàitean giollachd. Tha WebGPU a’ tabhann dà rud - GPURenderPipeline agus GPUComputePipeline, a leigeas leat diofar stàitean a chuir còmhla ro-mhìnichte leis an leasaiche, a leigeas leis a’ bhrobhsair gun a bhith a’ caitheamh ghoireasan air obair a bharrachd, leithid ath-chruinneachadh shaders. Tha stàitean le taic a’ toirt a-steach: shaders, bufair vertex agus dealbhadh buadhan, dealbhadh buidhne steigeach, measgachadh, doimhneachd agus pàtrain, agus cruthan toraidh iar-render.
  • Modail ceangail coltach ri feartan cruinneachadh ghoireasan Vulkan. Gus goireasan a chuir còmhla, tha WebGPU a’ toirt seachad rud GPUBindGroup, a dh’ fhaodar a cheangal ri nithean eile den aon seòrsa airson an cleachdadh ann an sgàilearan fhad ‘s a tha iad a’ sgrìobhadh òrdughan. Le bhith a’ cruthachadh bhuidhnean mar seo leigidh an draibhear na gnìomhan ullachaidh riatanach a dhèanamh ro-làimh, agus leigidh e leis a’ bhrobhsair ceanglaichean ghoireasan atharrachadh eadar gairmean tarraing mòran nas luaithe. Faodar cruth ceangail ghoireasan a ro-mhìneachadh le bhith a’ cleachdadh an nì GPUBindGroupLayout.

Source: fosgailtenet.ru

Cuir beachd ann