W3C unveils tunbo WebGPU bošewa

Консорциум 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 и выполнением шейдеров.

Awọn ẹya pataki ti WebGPU:

  • Isakoso lọtọ ti awọn orisun, iṣẹ igbaradi ati gbigbe awọn aṣẹ si GPU (ni WebGL ohun kan jẹ iduro fun ohun gbogbo ni ẹẹkan). Awọn ipo ọtọtọ mẹta ni a pese: GPUDevice fun ṣiṣẹda awọn orisun gẹgẹbi awọn awoara ati awọn buffers; GPUCommandEncoder fun fifi koodu pa awọn aṣẹ kọọkan, pẹlu ṣiṣe ati awọn ipele iṣiro; GPUCommandBuffer lati wa ni ila fun ipaniyan lori GPU. Abajade le ṣee ṣe ni agbegbe ti o ni nkan ṣe pẹlu ọkan tabi diẹ ẹ sii awọn eroja kanfasi, tabi ni ilọsiwaju laisi iṣẹjade (fun apẹẹrẹ, nigba ṣiṣe awọn iṣẹ ṣiṣe iṣiro). Iyapa awọn ipele jẹ ki o rọrun lati ya awọn ẹda orisun ati awọn iṣẹ igbaradi sinu awọn oluṣakoso oriṣiriṣi ti o le ṣiṣẹ lori awọn okun oriṣiriṣi.
  • Ọna ti o yatọ si awọn ipinlẹ sisẹ. WebGPU nfunni ni awọn nkan meji - GPURenderPipeline ati GPUComputePipeline, eyiti o gba ọ laaye lati ṣajọpọ awọn ipinlẹ oriṣiriṣi ti a ti ṣalaye tẹlẹ nipasẹ olupilẹṣẹ, eyiti o fun laaye ẹrọ aṣawakiri lati ma sọ ​​awọn orisun nu lori iṣẹ afikun, gẹgẹbi awọn atunto awọn shaders. Awọn ipinlẹ ti a ṣe atilẹyin pẹlu: awọn shaders, ifipamọ fatesi ati awọn ipilẹ abuda, awọn ipilẹ ẹgbẹ alalepo, idapọmọra, ijinle ati awọn ilana, ati awọn ọna kika igbejade ifiweranṣẹ.
  • Awoṣe abuda pupọ bii awọn ẹya akojọpọ awọn orisun Vulkan. Lati ṣe akojọpọ awọn orisun papọ, WebGPU n pese ohun elo GPUBindGroup kan, eyiti o le ni nkan ṣe pẹlu awọn nkan miiran ti o jọra fun lilo ninu awọn iboji lakoko kikọ awọn aṣẹ. Ṣiṣẹda iru awọn ẹgbẹ gba awakọ laaye lati ṣe awọn iṣe igbaradi pataki ni ilosiwaju, ati gba ẹrọ aṣawakiri laaye lati yi awọn asopọ awọn orisun laarin awọn ipe fa yiyara pupọ. Awọn ifilelẹ ti awọn ohun elo abuda le ti wa ni asọye tẹlẹ nipa lilo GPUBindGroupLayout ohun.

orisun: opennet.ru

Fi ọrọìwòye kun