Liczba funkcji WebGPU może się tym razem wydawać niewielka, ale już wkrótce pojawią się duże zmiany. Kolejne wersje będą zawierać takie funkcje jak DP4a, tekstury pamięci tylko do odczytu i do odczytu i zapisu, oddzielne sterowanie aspektem szablonu i głębi, renderowanie do wycinków tekstur 3D oraz ulepszenia kompilacji shaderów.
Tymczasem dowiedz się, jak przyspieszyć testowanie modelu AI w internecie dzięki obsłudze WebGPU i WebGL w Chrome bez interfejsu graficznego oraz dlaczego WebGPU może być wyłączone lub nie działać w Chrome.
Zwiększanie zasięgu dzięki trybowi zgodności (funkcja w trakcie opracowywania)
WebGPU dobrze współpracuje z nowoczesnymi interfejsami API grafiki (Vulkan, Metal i D3D12), ale niektóre urządzenia nie obsługują tych interfejsów. Ogranicza to dostępność WebGPU, zwłaszcza na platformach takich jak Windows (31% użytkowników Chrome nie ma D3D11.1+), Android (23% nie ma Vulkan 1.1+) i ChromeOS (Vulkan zyskuje popularność).
Zespół Chrome pracuje nad trybem zgodności w WebGPU, aby rozwiązać ten problem, oferując nieco ograniczoną wersję WebGPU, która działa na starszych interfejsach API, takich jak D3D11 i OpenGL ES. Zwiększy to potencjalną bazę użytkowników WebGPU.
Co ważne, aplikacje korzystające z trybu zgodności pozostają w pełni prawidłowe aplikacje WebGPU. Urządzenia bez obsługi trybu zgodności będą bezproblemowo przełączać się na podstawowy adapter WebGPU, co zapewni szeroką użyteczność.
Zapoznaj się z propozycją i skomentuj, jeśli masz pytania.
Zwiększanie limitu maxVertexAttributes
Maksymalna liczba atrybutów we wszystkich buforach podczas tworzenia GPURenderPipeline to domyślnie 16. Teraz można poprosić o maksymalnie 30 atrybutów, korzystając z limitu maxVertexAttributes, jeśli jest on obsługiwany. Zobacz ten 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 Dawn
Dodaliśmy nowy przełącznik instancji „expose_wgsl_experimental_features”, aby instancja udostępniała tylko eksperymentalne funkcje WGSL, ale 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 dawn:2260.
Ostatnie ulepszenia powiązań Dawn z Node.js obejmują:
- Dodano
GPUSupportedFeatures::getSize(). - Zaimplementowano nieaktualność
GPUAdapter. - Teraz w przypadku urządzeń prawidłowo zgłaszany jest
GPUInternalError. - Atrybuty są teraz wyliczalne.
To tylko niektóre z najważniejszych zmian. Zapoznaj się z pełną listą commitów.
Co nowego w WebGPU
Lista wszystkich funkcji omówionych w serii Co nowego w WebGPU.
Chrome 147–148
Chrome 146
- Obsługa trybu zgodności WebGPU w OpenGL ES 3.1
- Przejściowe załączniki
- Rozszerzenie WGSL texture_and_sampler_let
- Aktualizacje Dawn
Chrome 145
- Rozszerzenie WGSL subgroup_uniformity
- Eksperymentalne synchroniczne mapowanie buforów w procesach roboczych
- Aktualizacje Dawn
Chrome 144
- Rozszerzenie WGSL subgroup_id
- Rozszerzenie WGSL uniform_buffer_standard_layout
- WebGPU w systemie Linux
- Szybsze writeBuffer i writeTexture
- Aktualizacje Dawn
Chrome 143
- Przełączanie komponentów tekstury
- Usuwanie użycia tekstury pamięci tylko do odczytu bgra8unorm
- Aktualizacje Dawn
Chrome 142
Chrome 141
- Zakończono Tint IR
- Analiza zakresu liczb całkowitych w kompilatorze WGSL
- Aktualizacja SPIR-V 1.4 dla backendu Vulkan
- Aktualizacje Dawn
Chrome 140
- Żądania urządzeń zużywają adapter
- Skrót do używania tekstury, gdy używany jest widok tekstury
- WGSL textureSampleLevel obsługuje tekstury 1D
- Wycofywanie użycia tekstury pamięci tylko do odczytu bgra8unorm
- Usuwanie atrybutu GPUAdapter isFallbackAdapter
- Aktualizacje Dawn
Chrome 139
- Obsługa tekstur 3D w przypadku formatów skompresowanych BC i ASTC
- Nowa funkcja „core-features-and-limits”
- Wersja próbna origin dla trybu zgodności WebGPU
- Aktualizacje Dawn
Chrome 138
- Skrót do używania bufora jako zasobu powiązania
- Zmiany wymagań dotyczących rozmiaru w przypadku buforów mapowanych podczas tworzenia
- Raport architektury dla najnowszych procesorów GPU
- Wycofywanie atrybutu GPUAdapter isFallbackAdapter
- Aktualizacje Dawn
Chrome 137
- Używanie widoku tekstury do powiązania externalTexture
- Kopiowanie buforów bez określania przesunięć i rozmiaru
- WGSL workgroupUniformLoad używa wskaźnika do atomowego
- Atrybut GPUAdapterInfo powerPreference
- Usuwanie atrybutu GPURequestAdapterOptions compatibilityMode
- Aktualizacje Dawn
Chrome 136
- Atrybut GPUAdapterInfo isFallbackAdapter
- Skrócenie czasu kompilacji shaderów w D3D12
- Zapisywanie i kopiowanie obrazów z elementu canvas
- Usuwanie ograniczeń trybu zgodności
- Aktualizacje Dawn
Chrome 135
- Zezwalanie na tworzenie układu potoku z układem grupy powiązań null
- Zezwalanie na rozszerzanie widoków poza granice docelowych renderów
- Łatwiejszy dostęp do eksperymentalnego trybu zgodności na Androidzie
- Usuwanie limitu maxInterStageShaderComponents
- Aktualizacje Dawn
Chrome 134
- Ulepszanie zadań uczenia maszynowego za pomocą podgrup
- Usuwanie obsługi typów tekstur z filtrowaniem zmiennoprzecinkowym jako mieszanych
- Aktualizacje Dawn
Chrome 133
- Dodatkowe formaty wierzchołków unorm8x4-bgra i 1-komponentowe
- Zezwalanie na żądanie nieznanych limitów z niezdefiniowaną wartością
- Zmiany reguł wyrównywania WGSL
- Zwiększenie wydajności WGSL dzięki discard
- Używanie displaySize VideoFrame w przypadku tekstur zewnętrznych
- Obsługa obrazów o orientacji innej niż domyślna za pomocą copyExternalImageToTexture
- Ulepszanie środowiska deweloperskiego
- Włączanie trybu zgodności za pomocą featureLevel
- Czyszczenie eksperymentalnych funkcji podgrup
- Wycofywanie limitu maxInterStageShaderComponents
- Aktualizacje Dawn
Chrome 132
- Używanie widoku tekstury
- Mieszanie tekstur zmiennoprzecinkowych 32-bitowych
- Atrybut GPUDevice adapterInfo
- Konfigurowanie kontekstu elementu canvas z nieprawidłowym formatem powoduje błąd JavaScriptu
- Ograniczenia dotyczące próbek filtrowania w teksturach
- Rozszerzone eksperymenty z podgrupami
- Ulepszanie środowiska deweloperskiego
- Eksperymentalna obsługa 16-bitowych znormalizowanych formatów tekstur
- Aktualizacje Dawn
Chrome 131
- Odległości przycinania w WGSL
- GPUCanvasContext getConfiguration()
- Prymitywy punktowe i liniowe nie mogą mieć odchylenia głębi
- Wbudowane funkcje skanowania włącznie dla podgrup
- Eksperymentalna obsługa multi-draw indirect
- Opcja kompilacji modułu shadera strict math
- Usuwanie GPUAdapter requestAdapterInfo()
- Aktualizacje Dawn
Chrome 130
- Mieszanie z 2 źródeł
- Skrócenie czasu kompilacji shaderów w Metal
- Wycofywanie GPUAdapter requestAdapterInfo()
- Aktualizacje Dawn
Chrome 129
Chrome 128
- Eksperymentowanie z podgrupami
- Wycofywanie ustawiania odchylenia głębi dla linii i punktów
- Ukrywanie ostrzeżenia Narzędzi deweloperskich o nieprzechwyconym błędzie, jeśli preventDefault
- WGSL interpolate sampling first and either
- Aktualizacje Dawn
Chrome 127
- Eksperymentalna obsługa OpenGL ES na Androidzie
- Atrybut GPUAdapter info
- Ulepszenia interoperacyjności WebAssembly
- Ulepszone błędy kodera poleceń
- Aktualizacje Dawn
Chrome 126
- Zwiększanie limitu maxTextureArrayLayers
- Optymalizacja przesyłania buforów w backendzie Vulkan
- Skrócenie czasu kompilacji shaderów
- Przesłane bufory poleceń muszą być unikalne
- Aktualizacje Dawn
Chrome 125
Chrome 124
- Tekstury pamięci tylko do odczytu i do odczytu i zapisu
- Obsługa service workerów i shared workerów
- Nowe atrybuty informacji o adapterze
- Poprawki błędów
- Aktualizacje Dawn
Chrome 123
- Obsługa wbudowanych funkcji DP4a w WGSL
- Nieograniczone parametry wskaźników w WGSL
- Cukier syntaktyczny do dereferencji kompozytów w WGSL
- Oddzielny stan tylko do odczytu dla aspektów szablonu i głębi
- Aktualizacje Dawn
Chrome 122
- Zwiększanie zasięgu dzięki trybowi zgodności (funkcja w trakcie opracowywania)
- Zwiększanie limitu maxVertexAttributes
- Aktualizacje Dawn
Chrome 121
- Obsługa WebGPU na Androidzie
- Używanie DXC zamiast FXC do kompilacji shaderów w systemie Windows
- Zapytania o sygnaturę czasową w przypadku przejść obliczeniowych i renderowania
- Domyślne punkty wejścia do modułów shadera
- Obsługa display-p3 jako przestrzeni kolorów GPUExternalTexture
- Informacje o stertach pamięci
- Aktualizacje Dawn
Chrome 120
- Obsługa 16-bitowej reprezentacji zmiennoprzecinkowej w WGSL
- Przekraczanie limitów
- Zmiany stanu głębi i szablonu
- Aktualizacje informacji o adapterze
- Kwantyzacja zapytań o sygnaturę czasową
- Funkcje czyszczenia
Chrome 119
- Tekstury zmiennoprzecinkowe 32-bitowe z filtrowaniem
- Format wierzchołków unorm10-10-10-2
- Format tekstury rgb10a2uint
- Aktualizacje Dawn
Chrome 118
- Obsługa HTMLImageElement i ImageData w
copyExternalImageToTexture() - Eksperymentalna obsługa tekstur pamięci do odczytu i zapisu oraz tylko do odczytu
- Aktualizacje Dawn
Chrome 117
- Usuwanie ustawienia bufora wierzchołków
- Usuwanie ustawienia grupy powiązań
- Wyciszanie błędów podczas asynchronicznego tworzenia potoku, gdy urządzenie jest niedostępne
- Aktualizacje tworzenia modułu shadera SPIR-V
- Ulepszanie środowiska deweloperskiego
- Buforowanie potoków z automatycznie generowanym układem
- Aktualizacje Dawn
Chrome 116
- Integracja WebCodecs
- Utracone urządzenie zwrócone przez GPUAdapter
requestDevice() - Płynne odtwarzanie filmu, jeśli wywoływana jest funkcja
importExternalTexture() - Zgodność ze specyfikacją
- Ulepszanie środowiska deweloperskiego
- Aktualizacje Dawn
Chrome 115
- Obsługiwane rozszerzenia języka WGSL
- Eksperymentalna obsługa Direct3D 11
- Domyślne pobieranie dyskretnego procesora GPU przy zasilaniu prądem zmiennym
- Ulepszanie środowiska deweloperskiego
- Aktualizacje Dawn
Chrome 114
- Optymalizacja JavaScriptu
- getCurrentTexture() w niekonfigurowanym elemencie canvas zgłasza InvalidStateError
- Aktualizacje WGSL
- Aktualizacje Dawn