Liczba funkcji WebGPU może wydawać się w tej chwili niewielka, ale duże zmiany są już tuż za rogiem. Następne wersje będą zawierać takie funkcje jak DP4a, tekstury w pamięci tylko do odczytu i do odczytu i zapisu, oddzielne sterowanie rzutnikiem i głębią, renderowanie na plasterki tekstur 3D oraz udoskonalenia kompilacji shaderów.
Zanim to nastąpi, dowiedz się, jak ulepszyć testowanie modeli Web AI z wykorzystaniem technologii WebGPU i WebGPU w Chrome bez interfejsu graficznego oraz dlaczego WebGPU może być wyłączony lub nie działa w Chrome.
Zwiększenie zasięgu za pomocą trybu zgodności (funkcja w trakcie tworzenia)
WebGPU dobrze współdziała z nowoczesnymi interfejsami API do grafiki (Vulkan, Metal i D3D12), ale niektóre urządzenia nie obsługują tych interfejsów. Ogranicza to dostępność funkcji WebGPU, zwłaszcza na platformach takich jak Windows (31% użytkowników Chrome nie ma wersji D3D11.1 lub nowszej), Android (23% brak wersji Vulkan 1.1 lub nowszej) i ChromeOS (coraz większą popularność tego rozwiązania).
Zespół Chrome pracuje nad trybem zgodności w WebGPU, aby rozwiązać ten problem. Chcemy zaoferować nieco ograniczoną wersję WebGPU, która działa na starszych interfejsach API, takich jak D3D11 i OpenGL ES. Dzięki temu zwiększy się potencjalna baza użytkowników WebGPU.
Co ważne, aplikacje korzystające z tego trybu pozostają w pełni prawidłowymi aplikacjami WebGPU. Urządzenia bez obsługi trybu zgodności automatycznie przełączą się na podstawowy interfejs WebGPU, co zapewni większą użyteczność.
Jeśli masz pytania, zapoznaj się z propozycją i komentarzem.
Zwiększenie limitu maxVertexAttributes
Maksymalna liczba atrybutów w całości buforów podczas tworzenia GPURenderPipeline wynosi domyślnie 16. Teraz możesz poprosić o maksymalnie 30 atrybutów, korzystając z limitu maxVertexAttributes, jeśli jest obsługiwany. Zobacz poniższy przykład i problem dawn:2223.
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxVertexAttributes < 30) {
// When the desired limit isn't supported, take action to either fall back to
// a code path that does not require the higher limit or notify the user that
// their device does not meet minimum requirements.
}
// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxVertexAttributes: 30 },
});
Aktualizacje świtu
Dodano nowy przełącznik instancji o nazwie „expose_wgsl_experimental_features”, aby instancja udostępniała tylko eksperymentalne funkcje WGSL, a nie te niebezpieczne. Dzięki temu można używać bezpiecznych eksperymentalnych funkcji WGSL bez konieczności włączania przełącznika „allow_unsafe_apis”. Zobacz problem: świt:2260.
Ostatnie ulepszenia obsługujących Node.js pakietów rozszerzeń Dawn:
- Do Twojego konta dodano
GPUSupportedFeatures::getSize()
. - Wdrożono
GPUAdapter
nieaktualnych danych. - Urządzenia są teraz prawidłowo raportowane przez
GPUInternalError
. - Można teraz wyliczać atrybuty.
To tylko niektóre z najważniejszych informacji. Zapoznaj się z pełną listą commitów.
Co nowego w WebGPU
Lista wszystkiego, co zostało omówione w serii Co nowego w WebGPU.
Chrome 131
- Odległości klipów w WGSL
- GPUCanvasContext getConfiguration()
- Punkty i linie nie mogą mieć ustawienia głębi
- Funkcje wbudowane w skanowanie z uwzględnieniem wszystkich grup
- Dodanie eksperymentalnej obsługi pośredniego rysowania wielokrotnego
- Opcja kompilacji modułu shadera: ścisłe obliczenia matematyczne
- Usuwanie metody requestAdapterInfo() klasy GPUAdapter
- Aktualizacje dotyczące Dawn
Chrome 130
- Mieszanie dwóch źródeł
- Skrócony czas kompilowania shadera w metalu
- Wycofanie metody requestAdapterInfo() klasy GPUAdapter
- Aktualizacje dotyczące Dawn
Chrome 129
Chrome 128
- Eksperymentowanie z podgrupami
- Wycofanie obsługi ustawiania głębi dla linii i punktów
- Ukryj nieprzechwycony błąd w Narzędziach deweloperskich w przypadku funkcji preventDefault
- Najpierw spróbuj interpolować próbkowanie WGSL, a następnie:
- Aktualizacje dotyczące Dawn
Chrome 127
- Doświadczalna obsługa OpenGL ES na Androidzie
- Atrybut informacji o karcie GPU
- Ulepszenia interoperacyjności WebAssembly
- Poprawione błędy kodowania poleceń
- Informacje o świcie
Chrome 126
- Zwiększanie limitu maxTextureSlateWarstwy
- Optymalizacja przesyłania buforów w backendzie Vulkan
- Ulepszenia dotyczące czasu kompilacji shaderów
- Przesłane bufory poleceń muszą być unikalne
- Aktualizacje dotyczące Dawn
Chrome 125
- Podgrupy (funkcja w trakcie tworzenia)
- Renderowanie na potrzeby wycinka tekstury 3D
- Aktualizacje dotyczące Dawn
Chrome 124
- Tekstury tylko do odczytu i do odczytu i zapisu
- Obsługa pracowników usług i pracowników wspólnych
- Nowe atrybuty informacji o adapterze
- Poprawki błędów
- Aktualizacje dotyczące Dawn
Chrome 123
- Obsługa wbudowanych funkcji DP4a w WGSL
- Nieograniczone parametry wskaźnika w WGSL
- Składnikowy cukier do dereferencji elementów złożonych w WGSL
- Oddzielny stan tylko do odczytu dla stempli i aspektów głębi
- Informacje o świcie
Chrome 122
- Zwiększanie zasięgu dzięki trybowi zgodności (funkcja w fazie opracowywania)
- Zwiększenie limitu maxVertexAttributes
- Aktualizacje dotyczące Dawn
Chrome 121
- Obsługa WebGPU na Androidzie
- Używanie DXC zamiast FXC do kompilowania shaderów w systemie Windows
- Zapytania o sygnatury czasowe w przelotach obliczeniowych i renderowania
- Domyślne punkty wejścia do modułów cieniowania
- Obsługa przestrzeni barw display-p3 jako przestrzeni barw GPUExternalTexture
- Informacje o stertach pamięci
- Aktualizacje dotyczące Dawn
Chrome 120
- Obsługa 16-bitowych wartości zmiennoprzecinkowych w WGSL
- Przekraczanie limitów
- Zmiany stanu głębi cieniowania
- Aktualizacje informacji o adapterze
- Kwantyzacja zapytań dotyczących sygnatury czasowej
- Funkcje sprzątania wiosenną
Chrome 119
- Filtrowane tekstury 32-bitowe zmiennoprzecinkowe
- Format wierzchołka unorm10-10-10-2
- Format tekstury rgb10a2uint
- Aktualizacje dotyczące Dawn
Chrome 118
- Obsługa HTMLImageElement i ImageData w
copyExternalImageToTexture()
- Eksperymentalna obsługa tekstury pamięci masowej tylko do odczytu i do odczytu i zapisu
- Informacje o świcie
Chrome 117
- Bufor wierzchołka nieustawiony
- Cofnij grupę wiązania
- Wyciszaj błędy tworzenia potoku asynchronicznego w przypadku utraty urządzenia
- Aktualizacje dotyczące tworzenia modułów shaderów SPIR-V
- Ułatwienie pracy programistom
- Przetwarzanie za pomocą przepływów z automatycznie wygenerowanym układem
- Informacje o świcie
Chrome 116
- Integracja z WebCodecs
- Urządzenie zgubione zwrócone przez GPUAdapter
requestDevice()
- Odtwarzaj płynnie, gdy wywoływany jest
importExternalTexture()
- Zgodność ze specyfikacją
- Ułatwienie pracy programistom
- Aktualizacje dotyczące Dawn
Chrome 115
- Obsługiwane rozszerzenia językowe WGSL
- Eksperymentalna obsługa interfejsu Direct3D 11
- Uzyskaj oddzielny procesor graficzny domyślnie na zasilaniu z sieci
- Ułatwienie pracy programistom
- Aktualizacje dotyczące Dawn
Chrome 114
- Optymalizacja kodu JavaScript
- getCurrentTexture() na nieskonfigurowanym płótnie powoduje błąd InvalidStateError
- Aktualizacje WGSL
- Informacje o świcie