WebGPU lagolago o le a mafai i Chrome

Компания Google объявила о включении по умолчанию поддержки графического API WebGPU и языка шейдеров WGSL (WebGPU Shading Language) в ветке Chrome 113, релиз которой намечен на 2 мая. WebGPU предоставляет схожий с Vulkan, Metal и Direct3D 12 программный интерфейс для выполнения операций на стороне GPU, таких как рендеринг и вычисления, а также позволяет использовать язык шейдров для написания программ, работающих на стороне GPU. Реализация WebGPU будет включена вначале только в сборках для ChromeOS, macOS и Windows. Для Linux и Android поддержка WebGPU будет активирована позднее.

Кроме Chrome экспериментальная поддержка WebGPU тестируется с апреля 2020 года в Firefox и с ноября 2021 года в Safari. Для включения WebGPU в Firefox в about:config следует выставить флаги dom.webgpu.enabled и gfx.webgpu.force-enabled. О планах по включению WebGPU по умолчанию в Firefox и Safari пока не сообщается. Развиваемые для Firefox и Chrome реализации WebGPU доступны в форме отдельных библиотек — Dawn (С++) и wgpu (Rust), которые можно использовать для интеграции поддержки WebGPU в свои приложения. Также ведётся работа по добавлению поддержки WebGPU в популярные JavaScript-библитеки, изначально использующие WebGL. Например, полная поддержка WebGPU уже заявлена в Babylon.js, а частичная в Three.js, PlayCanvas и TensorFlow.js.

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

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

O mea taua ole WebGPU:

  • Tuʻufaʻatasia le puleaina o punaoa, galuega sauniuni ma le tuʻuina atu o faʻatonuga i le GPU (i le WebGL e tasi le mea e nafa ma mea uma i le taimi e tasi). E tolu tulaga eseese o lo'o tu'uina atu: GPUDevice mo le fa'atupuina o punaoa e pei o le lanu ma pa'u; GPUCommandEncoder mo le fa'avasegaina o fa'atonuga ta'ito'atasi, e aofia ai le fa'aliliuina ma le fa'atulagaina o la'asaga; GPUCommandBuffer e tuʻuina mo le faʻatinoina i luga o le GPU. O le i'uga e mafai ona tu'uina atu i se vaega e feso'ota'i ma se tasi pe sili atu elemene tapoleni, po'o le fa'agaioiina e aunoa ma se mea e maua (mo se fa'ata'ita'iga, pe a fa'atino galuega fa'atatau). O le tuueseeseina o laasaga e faafaigofie ai ona tuueseese le fausiaina o punaoa ma galuega sauniuni i tagata eseese e mafai ona tamoe i luga o filo eseese.
  • O se auala ese i le faagasologa o setete. WebGPU e ofoina atu ni mea se lua - GPURenderPipeline ma GPUComputePipeline, lea e mafai ai e oe ona tuʻufaʻatasia setete eseese na muaʻi faʻamalamalamaina e le atinaʻe, lea e mafai ai e le browser ona le faʻaumatia punaoa i galuega faaopoopo, e pei o le toe faʻaleleia o shaders. O setete lagolago e aofia ai: shaders, vertex buffer ma uiga faʻatulagaina, faʻapipiʻi vaega faʻapipiʻi, faʻafefiloi, loloto ma mamanu, ma faʻasologa o mea e fai pe a uma ona tuʻuina atu.
  • O se fa'ata'ita'iga fa'apipi'i e pei lava o fa'avasegaga a le Vulkan. Ina ia faʻapotopoto faʻatasi punaoa, WebGPU e tuʻuina atu se mea GPUBindGroup, lea e mafai ona fesoʻotaʻi ma isi mea tutusa mo le faʻaogaina i shaders aʻo tusia poloaiga. O le fatuina o ia vaega e mafai ai e le avetaʻavale ona faʻatino sauniuniga talafeagai i le taimi muamua, ma faʻatagaina le suʻesuʻega e sui vave punaoa i le va o le telefoni. E mafai ona mua'i fa'auigaina le fa'atulagaina o so'oga e fa'aaoga ai le mea GPUBindGroupLayout.

puna: opennet.ru

Faaopoopo i ai se faamatalaga