Chrome 113 активує WebGPU, сучасний графічний API для Інтернету з низькими витратами.
Google сьогодні оголосив, що ввімкне підтримку WebGPU у своєму браузері Chrome за замовчуванням, починаючи з версії 113, яка зараз знаходиться в бета-версії. WebGPU, що розробляється з 2017 року, — це графічний API наступного покоління, який має на меті використовувати переваги API із низькими витратами, як-от Microsoft Direct3D 12, Apple Metal і Vulkan, у веб-браузерах та інших програмах.
Підтримка WebGPU доступна вже деякий час, але за замовчуванням у Chrome вимкнена, оскільки API ще не завершено, і все може виходити з ладу від оновлення до оновлення. Google каже, що і Mozilla, і Apple згодом підтримуватимуть WebGPU у Firefox і Safari, а такі браузери, як Microsoft Edge і Opera, які покладаються на движок браузера Chromium, ймовірно, зможуть увімкнути його, як це зробив Google.
Chrome 113 спочатку підтримує WebGPU в Windows, macOS і ChromeOS, а «підтримка інших платформ», таких як Linux і Android, з’явиться пізніше цього року. Ця версія браузера має стати доступною для всіх користувачів Chrome десь у травні.
Підтримка в Chrome – це великий крок вперед для будь-якого нового стандарту, будь то новий чи оновлений API, формат зображення чи відеокодек. За даними StatCounter, на сам Chrome припадає приблизно дві третини світового ринку браузерів і майже 80 відсотків загальної частки ринку браузерів, якщо рахувати інші браузери на основі Chromium. Щойно Safari та Firefox додадуть підтримку, практично всі веб-браузери в усьому світі зможуть запускати код WebGPU, тому варто коротко пояснити, що таке WebGPU і навіщо він існує.
Що таке Web GPU?
WebGPU є свого роду наступником WebGL , набагато старішого API, який дозволяє відображати графіку на основі OpenGL у вашому браузері, не вимагаючи додаткових плагінів сторонніх розробників, таких як Adobe Flash. Хоча WebGL був революційним, коли він був анонсований у 2009 році, сьогодні він страждає від багатьох тих самих проблем, що й OpenGL: він не використовує повною мірою переваги сучасних графічних процесорів, він може втрачати продуктивність через витрати драйверів, і він має лише обмежені можливості. і незграбна підтримка обчислювальних навантажень GPU.
«У той час як WebGL в основному розроблено для малювання зображень, але його можна перепрофілювати (з додатковими зусиллями) для виконання інших видів обчислень, WebGPU має першокласну підтримку для виконання загальних обчислень на GPU», — йдеться в чернетці документа, в якому пояснюється, чому існує WebGPU . . Новий API покращить графіку в таких середовищах, як Babylon.js, і ігрових движках, таких як Unity; підтримуватиме робочі навантаження з прискоренням GPU, такі як ті, що використовуються для машинного навчання та штучного інтелекту; і може спростити для веб-додатків для фотографій і відео (зокрема інших) використання переваг прискорення графічного процесора, від якого виграють власні програми.
WebGPU розробляється робочою групою, до якої входять представники Google, Microsoft, Apple, Mozilla, Intel та багатьох інших компаній, і в результаті API розроблено таким чином, щоб бути максимально сумісним. WebGPU не є прямою реалізацією будь-якого існуючого графічного API, а є нативним API, який знаходиться поверх Direct3D 12, Metal і Vulkan і взаємодіє з ними. Цей пояснювач від Surma, інженера Shopify і колишнього співробітника Google, гарно підсумовує це (виділення наше):
«У той час як WebGL — це лише тонка обгортка навколо OpenGL, WebGPU застосував інший підхід. Він представляє власні абстракції та не відображає безпосередньо жодного з цих рідних API. Частково це пояснюється тим, що жоден API не доступний для всіх систем, а також тому, що багато концепцій (наприклад, керування пам’яттю надзвичайно низького рівня) не є ідіоматичними для Web API. Натомість WebGPU було розроблено таким чином, щоб він нагадував мережу та зручно розміщувався поверх будь-якого з нативних графічних API, абстрагуючись від їхніх особливостей. Він стандартизований у W3C, і всі основні постачальники браузерів сидять за столом».
Це має перевагу в тому, що код WebGPU стає дуже портативним – напишіть код WebGPU, і якщо у користувачів є апаратне забезпечення та браузер, які його підтримують, ви повинні отримати той самий результат у системі Windows із Direct3D і на телефоні Android із Vulkan. І він уникає деяких хаків, які забезпечують роботу WebGL – наприклад, WebGL у Windows і macOS навіть не використовує безпосередньо OpenGL, а натомість використовує перекладач під назвою ANGLE, який перетворює виклики API OpenGL на виклики API Direct3D і Metal . З WebGPU немає необхідності починати абсолютно окремий проект, щоб написати повільну або погано підтримувану реалізацію OpenGL.
WebGPU також має власну мову шейдерів (WGSL), над підтримкою якої команда Chrome все ще працює. У сьогоднішньому повідомленні йдеться, що Google «планує надати глибший доступ до ядер шейдерів» через WGSL у майбутньому випуску. Як і решта API WebGPU, WGSL не залежить від платформи та легко перекладається на бажану мову шейдерів будь-якої операційної системи, у якій ви його використовуєте.
Нарешті, незважаючи на слово «мережа» в назві, API WebGPU не обмежується браузерами. Проект wgpu — це версія WebGPU від Rust, яка дозволяє писати програми WebGPU і запускати їх поза веб-браузерами.
Якщо ви хочете поекспериментувати з WebGPU зараз, бета-версія Chrome 113 доступна тут . Репозиторій GitHub із зразками коду доступний тут , а також є офіційна документація як для WebGPU , так і для WGSL .
Залишити відповідь