Chrome 113 aktywuje WebGPU, nowoczesny graficzny interfejs API o niskim nakładzie pracy dla sieci.
Google ogłosiło dzisiaj , że włączy obsługę WebGPU w swojej domyślnej przeglądarce Chrome, począwszy od wersji 113, która jest obecnie w fazie beta. WebGPU, rozwijany od 2017 r., to graficzny interfejs API nowej generacji, który ma na celu wykorzystanie interfejsów API o niskim narzutie, takich jak Microsoft Direct3D 12, Apple Metal i Vulkan w przeglądarkach internetowych i innych aplikacjach.
Obsługa WebGPU jest dostępna od jakiegoś czasu, ale jest domyślnie wyłączona w Chrome, ponieważ interfejs API nie został sfinalizowany i niektóre aktualizacje mogą się psuć. Google twierdzi, że zarówno Mozilla, jak i Apple będą ostatecznie obsługiwać WebGPU w Firefox i Safari, a przeglądarki takie jak Microsoft Edge i Opera, które opierają się na silniku przeglądarki Chromium, mogą go włączyć, tak jak zrobił to Google.
Na początek Chrome 113 obsługuje WebGPU w systemach Windows, macOS i ChromeOS, podczas gdy „obsługa innych platform”, takich jak Linux i Android, „będzie dostępna jeszcze w tym roku”. Ta wersja przeglądarki powinna być dostępna dla wszystkich użytkowników Chrome w maju.
Obsługa w przeglądarce Chrome to duży krok naprzód w przypadku każdego nowego standardu, niezależnie od tego, czy jest to nowy, czy zaktualizowany interfejs API, format obrazu czy kodek wideo. Według StatCounter sam Chrome odpowiada za około dwie trzecie udziału w rynku przeglądarek na całym świecie i prawie 80 procent całkowitego udziału w rynku przeglądarek, jeśli liczyć inne przeglądarki oparte na Chromium. Gdy Safari i Firefox dodadzą obsługę, praktycznie wszystkie przeglądarki internetowe na całym świecie będą mogły uruchamiać kod WebGPU, dlatego warto pokrótce wyjaśnić, czym jest WebGPU i dlaczego istnieje.
Co to jest internetowy procesor graficzny?
WebGPU jest swego rodzaju następcą WebGL , znacznie starszego API, które umożliwia wyświetlanie grafiki opartej na OpenGL w przeglądarce bez konieczności stosowania dodatkowych wtyczek innych firm, takich jak Adobe Flash. Podczas gdy WebGL był rewolucyjny, gdy został ogłoszony w 2009 roku, dzisiaj cierpi na wiele takich samych problemów jak OpenGL: nie wykorzystuje w pełni nowoczesnych procesorów graficznych, może tracić wydajność z powodu obciążenia sterownika i ma tylko ograniczone możliwości. i niezgrabna obsługa obciążeń obliczeniowych GPU.
„Podczas gdy WebGL jest przeznaczony przede wszystkim do rysowania obrazów, ale można go ponownie wykorzystać (przy większym wysiłku) do wykonywania innych rodzajów obliczeń, WebGPU zapewnia najwyższej klasy wsparcie dla wykonywania ogólnych obliczeń na GPU” — czytamy w szkicu dokumentu wyjaśniającego, dlaczego istnieje WebGPU . Nowy interfejs API poprawi grafikę w środowiskach takich jak Babylon.js i silnikach gier, takich jak Unity; będzie obsługiwać obciążenia akcelerowane przez GPU, takie jak te używane do uczenia maszynowego i sztucznej inteligencji; i może ułatwić (między innymi) aplikacjom internetowym zajmującym się fotografią i filmami korzystanie z akceleracji GPU, z której korzystają aplikacje natywne.
WebGPU jest rozwijane przez grupę roboczą składającą się z przedstawicieli Google, Microsoft, Apple, Mozilla, Intel i wielu innych firm, w wyniku czego interfejs API został zaprojektowany tak, aby był jak najbardziej kompatybilny. WebGPU nie jest bezpośrednią implementacją żadnego istniejącego graficznego interfejsu API, ale natywnym interfejsem API, który znajduje się na szczycie i współdziała z Direct3D 12, Metal i Vulkan. Ten przewodnik od Surmy, inżyniera Shopify i byłego pracownika Google, ładnie to podsumowuje (podkreślenie nasze):
„Podczas gdy WebGL jest tylko cienką nakładką na OpenGL, WebGPU przyjęło inne podejście. Wprowadza własne abstrakcje i nie odzwierciedla bezpośrednio żadnego z tych natywnych interfejsów API. Dzieje się tak częściowo dlatego, że żaden pojedynczy interfejs API nie jest dostępny we wszystkich systemach, ale także dlatego, że wiele koncepcji (takich jak zarządzanie pamięcią na bardzo niskim poziomie) nie jest idiomatycznych dla interfejsu API sieci Web. Zamiast tego, WebGPU zostało zaprojektowane tak, aby przypominało sieć i wygodnie znajdowało się na szczycie dowolnego z natywnych graficznych interfejsów API, abstrahując od ich specyfiki. Jest to ustandaryzowane w W3C i wszyscy główni dostawcy przeglądarek siedzą przy stole”.
Ma to tę zaletę, że kod WebGPU staje się bardzo przenośny – napisz kod WebGPU i dopóki użytkownicy mają sprzęt i przeglądarkę, która go obsługuje, powinieneś uzyskać taki sam wynik na systemie Windows z Direct3D i na telefonie z Androidem z Vulkan. I unika niektórych hacków, które utrzymują działanie WebGL – na przykład WebGL w systemach Windows i macOS nawet nie używa OpenGL bezpośrednio, ale zamiast tego używa translatora o nazwie ANGLE, który zamiast tego zamienia wywołania OpenGL API na wywołania Direct3D i Metal API . Dzięki WebGPU nie ma potrzeby rozpoczynania zupełnie osobnego projektu, aby napisać powolną lub źle utrzymaną implementację OpenGL.
WebGPU ma również własny język cieniowania (WGSL), nad którym zespół Chrome wciąż pracuje – dzisiejsze ogłoszenie mówi, że Google „planuje zapewnić głębszy dostęp do rdzeni shaderów” za pośrednictwem WGSL w przyszłej wersji. Podobnie jak reszta interfejsu API WebGPU, WGSL jest niezależny od platformy i łatwo tłumaczy się na preferowany język modułu cieniującego niezależnie od systemu operacyjnego, w którym go używasz.
Wreszcie, pomimo słowa „sieć” w nazwie, API WebGPU nie ogranicza się do przeglądarek. Projekt wgpu to wersja WebGPU firmy Rust, która umożliwia pisanie aplikacji WebGPU i uruchamianie ich poza przeglądarkami internetowymi.
Jeśli chcesz teraz poeksperymentować z WebGPU, Chrome 113 beta jest dostępny tutaj . Repozytorium GitHub z przykładami kodu jest dostępne tutaj , a także oficjalna dokumentacja dla WebGPU i WGSL .
Dodaj komentarz