W3C කෙටුම්පත 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 и выполнением шейдеров.

WebGPU හි ප්‍රධාන විශේෂාංග:

  • සම්පත් වෙනම කළමනාකරණය කිරීම, සූදානම් කිරීමේ කටයුතු සහ GPU වෙත විධාන සම්ප්‍රේෂණය කිරීම (WebGL හි එක් වස්තුවක් සියල්ලටම එකවර වගකිව යුතුය). වෙනම සන්දර්භ තුනක් සපයා ඇත: වයනය සහ බෆර වැනි සම්පත් නිර්මාණය කිරීම සඳහා GPU උපාංගය; විදැහුම්කරණය සහ ගණනය කිරීමේ අදියර ඇතුළුව තනි විධානයන් කේතනය කිරීම සඳහා GPUCommandEncoder; GPUCommandBuffer GPU මත ක්‍රියාත්මක කිරීම සඳහා පෝලිම් කළ යුතුය. ප්‍රතිඵලය කැන්වස් මූලද්‍රව්‍ය එකක් හෝ කිහිපයක් සමඟ ආශ්‍රිත ප්‍රදේශයක විදහා දැක්විය හැක, නැතහොත් ප්‍රතිදානයකින් තොරව සැකසිය හැක (උදාහරණයක් ලෙස, පරිගණක කාර්යයන් ක්‍රියාත්මක කරන විට). අදියර වෙන් කිරීම විවිධ නූල් මත ධාවනය කළ හැකි විවිධ හසුරුවන්නන් බවට සම්පත් නිර්මාණය සහ සූදානම් කිරීමේ මෙහෙයුම් වෙන් කිරීම පහසු කරයි.
  • සැකසුම් තත්වයන් සඳහා වෙනස් ප්රවේශයක්. WebGPU විසින් වස්තු දෙකක් ඉදිරිපත් කරයි - GPURenderPipeline සහ GPUComputePipeline, සංවර්ධකයා විසින් කලින් නිර්වචනය කර ඇති විවිධ තත්වයන් ඒකාබද්ධ කිරීමට ඔබට ඉඩ සලසයි, එමඟින් සෙවනැලි නැවත සම්පාදනය කිරීම වැනි අමතර වැඩ සඳහා සම්පත් නාස්ති නොකිරීමට බ්‍රව්සරයට ඉඩ සලසයි. සහාය දක්වන ප්‍රාන්තවලට ඇතුළත් වන්නේ: ෂේඩර්, වර්ටෙක්ස් බෆරය සහ උපලක්ෂණ පිරිසැලසුම්, ඇලෙන සුළු කණ්ඩායම් පිරිසැලසුම්, මිශ්‍ර කිරීම, ගැඹුර සහ රටා, සහ පසු විදැහුම්කරණ ප්‍රතිදාන ආකෘති.
  • Vulkan හි සම්පත් සමූහකරණ විශේෂාංග වැනි බන්ධන ආකෘතියක්. සම්පත් එකට සමූහ කිරීමට, WebGPU GPUBindGroup වස්තුවක් සපයයි, විධාන ලිවීමේදී සෙවනැලි වල භාවිතා කිරීම සඳහා වෙනත් සමාන වස්තූන් සමඟ සම්බන්ධ කළ හැක. එවැනි කණ්ඩායම් නිර්මාණය කිරීමෙන් රියදුරුට අවශ්‍ය සූදානම් කිරීමේ ක්‍රියා කල්තියා සිදු කිරීමට ඉඩ සලසයි, සහ බ්‍රවුසරයට අඳින ඇමතුම් අතර සම්පත් බන්ධන වඩා වේගයෙන් වෙනස් කිරීමට ඉඩ සලසයි. GPUBindGroupLayout වස්තුව භාවිතයෙන් සම්පත් බන්ධනවල පිරිසැලසුම පූර්ව නිර්වචනය කළ හැක.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න