Tym razem liczba funkcji korzystających z WebGPU może wydawać się nieco lekka, ale to już wszystko, co mamy na wyciągnięcie ręki. Następne wersje będą zawierać takie funkcje jak DP4a, tekstury pamięci masowej tylko do odczytu i do odczytu i zapisu, osobne funkcje szablonów i kontroli głębi, renderowanie na wycinkach tekstur 3D oraz ulepszenia kompilacji narzędzia do cieniowania.
W międzyczasie dowiedz się, jak ulepszyć testowanie modeli internetowych AI za pomocą obsługi WebGPU i WebGPU w Chrome bez interfejsu graficznego oraz dowiedzieć się, dlaczego WebGPU może być wyłączony lub nie działa w Chrome.
Zwiększanie zasięgu dzięki trybowi zgodności (funkcja w fazie opracowywania)
Interfejs WebGPU dobrze współpracuje z nowoczesnymi interfejsami API grafiki (Vulkan, Metal i D3D12), ale niektóre urządzenia ich nie obsługują. Ogranicza to dostępność interfejsu WebGPU, zwłaszcza na platformach takich jak Windows (31% użytkowników Chrome nie ma wersji D3D11.1 lub nowszej), Android (w 23% nie ma interfejsu Vulkan 1.1 lub nowszego) oraz ChromeOS (rosnąco korzysta z Vulkan).
Zespół Chrome pracuje nad trybem zgodności w WebGPU, aby rozwiązać ten problem i udostępnić nieco ograniczoną wersję WebGPU, która działa w starszych interfejsach API, takich jak D3D11 czy OpenGL ES. Zwiększy to liczbę potencjalnych użytkowników WebGPU.
Co ważne, aplikacje korzystające z trybu zgodności pozostają w pełni prawidłowymi aplikacjami WebGPU. Urządzenia bez obsługi trybu zgodności domyślnie będą korzystać z podstawowego adaptera WebGPU, co zapewnia szeroki zakres obsługi.
Jeśli masz pytania, zapoznaj się z propozycją i komentarzem.
Zwiększ limit maxVertexAttributes
Maksymalna łączna liczba atrybutów w buforach podczas tworzenia GPURenderPipeline to domyślnie 16. Teraz możesz zażądać maksymalnie 30 żądań, używając limitu maxVertexAttributes (jeśli są obsługiwane). Zobacz ten przykład i ten problem: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 },
});
Powiadomienia o świcie
Dodaliśmy nowy przełącznik instancji o nazwie „expose_wgsl_experimental_features”, dzięki czemu instancja udostępnia 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 świt problemu:2260.
Najnowsze ulepszenia powiązań Dawn dla Node.js to między innymi:
- Do Twojego konta dodano
GPUSupportedFeatures::getSize()
. - Nieaktualność
GPUAdapter
została zaimplementowana. GPUInternalError
jest teraz prawidłowo raportowany w przypadku urządzeń.- Atrybuty można teraz wyliczyć.
To tylko niektóre z najważniejszych kwestii. Zobacz pełną listę zatwierdzeń.
Co nowego w WebGPU
Lista wszystkich zagadnień omówionych w serii Co nowego w WebGPU.
Chrome 125
Chrome 124
- Tekstury pamięci masowej tylko do odczytu i do odczytu i zapisu
- Skrypty service worker i współdzielone zasoby robocze – pomoc
- Nowe atrybuty informacji o adapterze
- Poprawki błędów
- Informacje o Dawn
Chrome 123
- Obsługa wbudowanych funkcji DP4a w języku WGSL
- Nieograniczone parametry wskaźnika w WGSL
- Cukier składniowy do usuwania linków do kompozytów w WGSL
- Oddzielny stan tylko do odczytu dla aspektów szablonu i głębi
- Informacje o Dawn
Chrome 122
- Rozszerzanie zasięgu dzięki trybowi zgodności (funkcja w fazie opracowywania)
- Zwiększ limit maxVertexAttributes
- Informacje o Dawn
Chrome 121
- Obsługa WebGPU na urządzeniach z Androidem
- Do kompilacji programu do cieniowania w systemie Windows użyj DXC zamiast FXC
- Zapytania o sygnaturę czasową podczas obliczeń obliczeniowych i renderowania
- Domyślne punkty wejścia do modułów cieniowania
- Obsługuj parametr display-p3 jako przestrzeń kolorów GPUExternalTexture
- Informacje o sterach pamięci
- Informacje o Dawn
Chrome 120
- Obsługa 16-bitowych wartości zmiennoprzecinkowych w języku WGSL
- Przekrocz granice
- Zmiany stanu szablonu głębi
- Aktualizacje informacji o adapterze
- Kwantyzowanie zapytań dotyczących sygnatury czasowej
- Funkcje Wiosenne porządki
Chrome 119
- Filtrowanie 32-bitowych tekstur pływających
- formacie wierzchołków unorm10-10-10-2
- Format tekstury rgb10a2uint
- Informacje o Dawn
Chrome 118
- Obsługa formatów HTMLImageElement i ImageData w interfejsie
copyExternalImageToTexture()
- Eksperymentalna obsługa tekstur pamięci masowej tylko do odczytu i zapisu oraz tylko do odczytu
- Informacje o Dawn
Chrome 117
- Nieustawiony bufor wierzchołków
- Cofnij ustawienie grupy powiązań
- Wyciszanie błędów podczas tworzenia potoku asynchronicznego w przypadku utraty urządzenia
- Aktualizacje dotyczące tworzenia modułu cieniowania SPIR-V
- Poprawianie wrażeń deweloperów
- Potoki w pamięci podręcznej z układem generowanym automatycznie
- Informacje o Dawn
Chrome 116
- Integracja z WebCodecs
- Zgubione urządzenie zwrócone przez GPUAdapter
requestDevice()
- Zapewniaj płynne odtwarzanie filmu, jeśli zostanie wywołany element
importExternalTexture()
- Zgodność ze specyfikacją
- Poprawianie wrażeń deweloperów
- Informacje o Dawn
Chrome 115
- Obsługiwane rozszerzenia języka WGSL
- Eksperymentalna obsługa Direct3D 11
- Domyślnie korzystaj z dyskretnego GPU na zasilaniu sieciowym
- Poprawianie wrażeń deweloperów
- Informacje o Dawn
Chrome 114
- Optymalizacja JavaScriptu
- Funkcja getCurrentTexture() w nieskonfigurowanym obszarze roboczym zgłasza nieprawidłową wartość błędu
- Aktualizacje WGSL
- Informacje o Dawn