Przechwytywanie ekosystemu WebGPU

François Beaufort
François Beaufort
Corentin Wallez
Corentin Wallez

Data publikacji: 9 listopada 2023 r., ostatnia aktualizacja: 16 września 2025 r.

WebGPU jest często postrzegany jako interfejs API grafiki internetowej, który zapewnia ujednolicony i szybki dostęp do procesorów graficznych poprzez udostępnianie najnowocześniejszych funkcji sprzętowych oraz umożliwianie operacji renderowania i obliczeń na GPU, podobnie jak Direct3D 12, Metal i Vulkan.

WebGPU to jednak nie tylko interfejs API JavaScriptu. Jest to podstawowy element, podobnie jak WebAssembly, którego znaczenie wykracza daleko poza internet ze względu na rozwijający się ekosystem. Zespół Chrome uważa WebGPU za coś więcej niż tylko technologię internetową – to prężnie rozwijający się ekosystem oparty na podstawowej technologii.

Poznawanie obecnego ekosystemu

Wszystko zaczyna się od specyfikacji JavaScriptu, która jest wynikiem współpracy wielu organizacji, takich jak Apple, Google, Intel, Mozilla i Microsoft. Wszystkie główne przeglądarki internetowe wdrożyły lub są w trakcie wdrażania WebGPU.

Jednocześnie Mozilla i Google dostrzegły potencjał WebGPU w aplikacjach specyficznych dla platformy i odseparowały implementacje WebGPU od przeglądarek, umożliwiając samodzielne korzystanie z tej technologii.

W przypadku Chrome powstała biblioteka Dawn napisana w C/C++, która tłumaczy wywołania WebGPU na polecenia sterownika procesora graficznego. Dawn umożliwia aplikacjom w językach C i C++ natywne korzystanie z WebGPU, zapewniając przenośną i ergonomiczną abstrakcję GPU z wykorzystaniem wiedzy specjalistycznej dostawców przeglądarek.

Jak pokazano we wpisie na blogu WebGPU: międzyplatformowy interfejs API grafiki przyszłości, przeniesienie aplikacji WebGPU przeznaczonej na konkretną platformę do internetu jest proste. Emscripten, czyli zestaw narzędzi C++ WebAssembly, obsługuje już WebGPU, więc wymaga tylko niewielkich modyfikacji, aby przenieść go do internetu.

Kod JavaScript WebGPU możesz też uruchamiać poza przeglądarką za pomocą środowiska wykonawczego JavaScript Node.js, ponieważ zawiera ono moduł WebGPU oparty na Dawn. Umożliwia uruchamianie kodu bez modyfikacji po stronie serwera lub w innych kontekstach specyficznych dla platformy.

Podobny ekosystem istnieje w przypadku języka Rust, w którym dostępna jest biblioteka wgpu, czyli implementacja WebGPU w przeglądarce Firefox. Bibliotekę Wgpu można bezpośrednio zintegrować z aplikacjami w języku Rust, które można następnie przenieść do internetu za pomocą web-sys. Środowisko wykonawcze JavaScript Deno obsługuje też WebGPU za pomocą wgpu. Przeczytaj posta na blogu o współpracy wgpu z Deno.

W ten sposób powstaje równoległy ekosystem między Rustem a C++, jak pokazano na poniższym diagramie.

Diagram ekosystemu WebGPU w 2023 r.
Ekosystem WebGPU w 2023 r.

Nowe horyzonty

Ekosystem WebGPU wykracza poza JavaScript, C++ i Rust.

Twój ulubiony język programowania może już mieć powiązania z WebGPU, ponieważ inżynierowie pracujący nad implementacjami WebGPU opracowują też wspólny nagłówek C dla WebGPU. Można go używać do kierowania na Dawn, wgpu i inne biblioteki, co ułatwia tworzenie powiązań dla języków korzystających z FFI w C.

Zespół Chrome rozważa też używanie Dawn jako domyślnego backendu renderowania wszystkich elementów interfejsu przeglądarki, w tym menu, pasków narzędzi, narzędzi dla programistów i treści internetowych. Eliminuje to konieczność tworzenia oddzielnych implementacji renderowania dla każdego natywnego interfejsu API, co upraszcza proces programowania. Ta funkcja jest w fazie eksperymentalnej w systemach macOS i Windows i jest dostępna za flagą chrome://flags/#skia-graphite.