W3C na-ekpughe ọkọlọtọ WebGPU depụtara

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

Akụkụ ndị bụ isi nke WebGPU:

  • Nlekọta dị iche iche nke akụrụngwa, ọrụ nkwadebe na nnyefe nke iwu na GPU (na WebGL, otu ihe na-ahụ maka ihe niile n'otu oge). Enyere ọnọdụ atọ dị iche iche: GPUDevice maka ịmepụta akụrụngwa dịka textures na buffers; GPUCommandEncoder maka itinye koodu n'otu n'otu, gụnyere usoro nsụgharị na ngụkọ; GPUCommandBuffer ịgafe na ahịrị ọsọ GPU. Enwere ike ịnye nsonaazụ ya na mpaghara jikọtara ya na otu ma ọ bụ karịa ihe akwa akwa, ma ọ bụ mee ya na-enweghị mmepụta (dịka ọmụmaatụ, mgbe ị na-arụ ọrụ mgbakọ na mwepụ). Nkewa nke nkebi na-eme ka ọ dị mfe ikewapụta ihe onwunwe na inye ọrụ n'ime ndị ọrụ dị iche iche nwere ike ịgba ọsọ na eriri dị iche iche.
  • Ụzọ dị iche iche maka njikwa steeti. WebGPU na-enye ihe abụọ - GPURenderPipeline na GPUComputePipeline, nke na-enye gị ohere ijikọta steeti dị iche iche nke onye mmepụta kọwapụtara, nke na-eme ka ihe nchọgharị ahụ ghara imefusị ihe onwunwe na ọrụ ndị ọzọ, dị ka nchịkọta shaders. Steeti akwadoro gụnyere: shaders, vertex buffer na attribute layouts, nhazi otu nnyapade, ngwakọta, omimi na ụkpụrụ, usoro mmepụta post-render.
  • Ụdị njide, dị ka ngwa ọrụ nchịkọta akụrụngwa nke Vulkan. Iji chịkọta akụrụngwa n'ime otu, WebGPU na-enye ihe GPUBindGroup, nke, n'oge edere iwu, enwere ike jikọta ya na ihe ndị ọzọ yiri ya maka ojiji na shaders. Ịmepụta otu dị otú ahụ na-enye ohere ka onye ọkwọ ụgbọala rụọ ọrụ nkwadebe dị mkpa tupu oge eruo, ma na-enye ohere ihe nchọgharị ka ọ gbanwee njikọ akụ n'etiti ịkpọ oku ngwa ngwa. Enwere ike ịkọwapụta nhazi nke njide akụrụngwa site na iji ihe GPUBindGroupLayout.

isi: opennet.ru

Tinye a comment