Підтримка WebGPU надходить до нічних версій Firefox

Опублікована інформація про інтеграцію специфікації довідки WebGPU у Firefox щоночі збирає, що зараз забезпечує інтерфейс програмування для обробки 3D-графіки та обчислення на стороні графічного процесора, концептуально подібні до API Vulkan, металу та Direct3D 12. Специфікація розробляється Mozilla, Google, Apple, Microsoft та представниками спільноти в робочій групі, створеній організацією W3C.

Ключовою метою WebGPU є створення безпечного, зручного, портативного та високопродуктивного програмного інтерфейсу для використання на веб-платформі з технологією 3D-графіки та можливостями, що надаються сучасними системними графічними API, такими як Direct3D 12 для Windows, Metal для macOS та Vulkan для Linux.

Концептуально, WebGPU відрізняється від WebGL так само, як Vulkan відрізняється від OpenGL і він не заснований на певному графічному API, швидше це універсальний шар, загалом, використовуючи ті самі низькорівневі примітиви, які доступні у Vulkan, Metal та Direct3D.

У Firefox для включення WebGPU передбачено параметр "dom.webgpu.enabled" приблизно: config. На додаток до візуалізації CanvasContext, воно також вимагає включення системи композиції WebRender ("gfx.webrender.all" у about: config).

Реалізація WebGPU базується на коді проекту wgpu, написаному на Rust, і може працювати над API DX12, Vulkan та Metal в Linux, Android, Windows та macOS (також підтримується підтримка DX11 та OpenGL ES 3.0).

Про WebGPU

WebGPU надає додаткам JavaScript інструменти для управління нижчим рівнем про організацію, обробка та передача команд на графічний процесор, управління пов'язаними ресурсами, пам'яттю, буферами, текстурними об'єктами та скомпільованими графічними шейдерами. Такий підхід буде дозволяє підвищити продуктивність графічних програм за рахунок зменшення накладних витрат і підвищення ефективності роботи з графічним процесором.

WebGPU дає можливість створювати цілі складні тривимірні проекти для Інтернету Вони працюють гірше, ніж автономні програми, які безпосередньо спілкуються з Vulkan, Metal або Direct3D, але не прив'язані до певних платформ.

також надає додаткові можливості шляхом перенесення власних графічних програм до форми, яка може функціонувати на основі веб-технологій за допомогою технології WebAssembly.

На додаток до 3D-графіки, WebGPU також охоплює можливості, пов'язані з усуненням обчислень біля GPU і підтримка розробки шейдерів. Шейдери можна створити на мові шейдерів WebGPU або вказати в проміжному форматі SPIR-V, а потім перекласти їх на мови шейдерів, що підтримуються поточними драйверами.

WebGPU використовує окреме управління ресурсами, підготовчу роботу та передачу команд до графічного процесора (у WebGL один об’єкт відповідав за все відразу). Надано три окремі контексти: GPUDevice для створення таких ресурсів, як текстури та буфери; GPUCommandEncoder для кодування окремих команд, включаючи етапи візуалізації та обчислення; GPUCommandBuffer до черги для виконання на графічному процесорі.

Друга відмінність WebGPU від WebGL полягає в іншому підході до обробки станів. У WebGPU запропоновано два об'єкти: GPURenderPipeline та GPUComputePipeline, які дозволяють поєднувати кілька станів, визначених розробником, що дозволяє браузеру не витрачати ресурси на додаткову роботу, наприклад, на перекомпіляцію шейдерів. До підтримуваних станів належать: шейдери, буфери вершин та макети атрибутів, прикріплені макети груп, змішування, глибина та шаблони, вихідні формати після рендерингу.

Третя особливість WebGPU - це модель прив'язки, що багато в чому нагадує засоби об'єднання ресурсів, наявні у Вулкані. Для групування ресурсів у групи WebGPU надає об’єкт GPUBindGroup, який, вводячи команди, може бути пов’язаний з іншими подібними об’єктами для використання в шейдерах.

Створення таких груп дозволяє водієві виконувати необхідні підготовчі дії заздалегідь, а браузер дозволяє йому набагато швидше переключати посилання ресурсів між викликами витягування.

Фуенте: https://hacks.mozilla.org/


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.