Obsługa WebGPU dotyczy nocnych wersji przeglądarki Firefox

Udostępniono informacje o integracji specyfikacji pomocy WebGPU w nocnych kompilacjach Firefoksa, które teraz zapewnia interfejs programowania do przetwarzania grafiki 3D i obliczeń po stronie GPU, koncepcyjnie zbliżone do API Vulkan, metal i Direct3D 12. Specyfikację opracowują Mozilla, Google, Apple, Microsoft oraz przedstawiciele społeczności w grupie roboczej stworzonej przez organizację W3C.

Głównym celem WebGPU jest stworzenie bezpiecznego, wygodnego, przenośnego i wydajnego interfejsu oprogramowania do użytku na platformie internetowej z technologią grafiki 3D i możliwościami zapewnianymi przez nowoczesne systemowe interfejsy graficzne, takie jak Direct3D 12 w systemie Windows, Metal na macOS i Vulkan w systemie Linux.

Koncepcyjnie WebGPU różni się od WebGL w ten sam sposób, w jaki Vulkan różni się od OpenGL i nie jest oparty na określonym graficznym interfejsie API, a raczej jest to warstwa uniwersalna, generalnie wykorzystująca te same prymitywy niskiego poziomu, które są dostępne w Vulkan, Metal i Direct3D.

W przeglądarce Firefox ustawienie „dom.webgpu.enabled” umożliwia włączenie WebGPU w około: config. Oprócz renderowania CanvasContext wymaga również włączenia systemu kompozycji WebRender („gfx.webrender.all” w about: config).

Implementacja WebGPU jest oparta na kodzie projektu wgpu napisanym w Rust i może pracować na interfejsach API DX12, Vulkan i Metal w systemach Linux, Android, Windows i macOS (w fazie rozwoju jest również obsługa DX11 i OpenGL ES 3.0).

O WebGPU

WebGPU udostępnia aplikacjom JavaScript narzędzia do kontroli niższego poziomu o organizacji, plik przetwarzanie i przesyłanie poleceń do GPU, zarządzanie powiązanymi zasobami, pamięcią, buforami, obiektami tekstur i skompilowanymi graficznymi modułami cieniującymi. Takie podejście będzie umożliwia wydajniejsze aplikacje graficzne zmniejszając narzuty i zwiększając wydajność pracy z GPU.

WebGPU umożliwia tworzenie kompletnych, złożonych projektów 3D na potrzeby Internetu nie działają gorzej niż samodzielne programy, które komunikują się bezpośrednio z Vulkan, Metal lub Direct3D, ale nie są powiązane z określonymi platformami.

również zapewnia dodatkowe możliwości, przenosząc natywne programy graficzne do postaci, która może funkcjonować w oparciu o technologie internetowe przy użyciu technologii WebAssembly.

Oprócz grafiki 3D, WebGPU obejmuje również możliwości związane z wyeliminowaniem obliczeń obok GPU i wsparcie dla rozwoju shaderów. Shadery mogą być tworzone w języku shaderów WebGPU lub określone w formacie pośrednim SPIR-V, a następnie tłumaczone na języki shaderów obsługiwane przez aktualne sterowniki.

WebGPU wykorzystuje osobne zarządzanie zasobami, prace przygotowawcze i przekazywanie poleceń do GPU (w WebGL jeden obiekt był odpowiedzialny za wszystko na raz). Udostępniono trzy oddzielne konteksty: GPUDurządzenie do tworzenia zasobów, takich jak tekstury i bufory; GPUCommandEncoder do kodowania poszczególnych poleceń, w tym etapów renderowania i obliczeń; GPUCommandBuffer do kolejki do wykonania na GPU.

Druga różnica między WebGPU i WebGL to inne podejście do obsługi stanów. W WebGPU proponowane są dwa obiekty: GPURenderPipeline i GPUComputePipeline, które pozwalają na łączenie kilku predefiniowanych przez programistę stanów, co pozwala przeglądarce nie marnować zasobów na dodatkową pracę, taką jak rekompilacja shaderów. Obsługiwane stany obejmują: shadery, bufory wierzchołków i układy atrybutów, dołączone układy grupowe, mieszanie, głębokość i wzorce, formaty wyjściowe po renderowaniu.

Trzecią cechą WebGPU jest model wiązaniaco pod wieloma względami przypomina sposób łączenia zasobów obecny w Vulkan. Aby zgrupować zasoby w grupy, WebGPU udostępnia obiekt GPUBindGroup, który po wpisaniu poleceń można powiązać z innymi podobnymi obiektami do użytku w modułach cieniujących.

Utworzenie takich grup pozwala kierowcy na wcześniejsze wykonanie niezbędnych działań przygotowawczych, a przeglądarka pozwala na znacznie szybsze przełączanie łączy zasobów między wywołaniami pull.

źródło: https://hacks.mozilla.org/


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.