Opublikowano: 17 czerwca 2025 r.
Skrót do używania bufora jako zasobu powiązanego
Deweloperzy mogą teraz używać obiektu GPUBuffer bezpośrednio jako obiektu GPUBindingResource, aby udostępnić go shaderowi do powiązania. Dzięki temu jest on zgodny z innymi typami powiązań i jeszcze łatwiejszy w użyciu niż GPUBufferBinding, gdy zarówno rozmiar, jak i przesunięcie mają wartości domyślne. Zobacz problem 419223794.
const bindGroup = myDevice.createBindGroup({
layout: myPipeline.getBindGroupLayout(0),
entries: [
{ binding: 0, resource: mySampler },
{ binding: 1, resource: myTextureView },
{ binding: 2, resource: myExternalTexture },
{ binding: 3, resource: myBuffer }, // Same as { buffer: myBuffer }
{ binding: 4, resource: { buffer: myOtherBuffer, offset: 42 },
],
});
Zmiany wymagań dotyczących rozmiaru w przypadku buforów mapowanych podczas tworzenia
Utworzenie bufora z ustawioną wartością mappedAtCreation na true (prawda) powoduje teraz zgłoszenie błędu RangeError, jeśli size nie jest wielokrotnością liczby 4. Wcześniej było to egzekwowane tylko za pomocą GPUValidationError. Zobacz problem 405883445.
myDevice.createBuffer({
mappedAtCreation: true,
size: 42,
usage: GPUBufferUsage.STORAGE,
});
// Throws RangeError
Raport o architekturze najnowszych układów GPU
Najnowsze układy GPU firm Nvidia i AMD zgłaszają teraz swoją architekturę w GPUAdapterInfo odpowiednio jako "blackwell" i "rdna4", a także kilka innych drobnych dodatków do list architektur GPU. Zobacz problem 417202748.
Wycofanie atrybutu GPUAdapter isFallbackAdapter
Atrybut GPUAdapter isFallbackAdapter został wycofany. Zastępuje go atrybut GPUAdapterInfo isFallbackAdapter, który został wprowadzony w Chrome 136. Zobacz zamiar wycofania.
Aktualizacje Dawn
Emscripten jest obsługiwany w Dawn GLFW w przypadku kompilacji CMake, co pozwala deweloperom jeszcze bardziej uprościć kod aplikacji WebGPU na wielu platformach podczas korzystania z Emdawnwebgpu, który implementuje najnowszy standardowy plik webgpu.h w interfejsie API przeglądarki. Zobacz zmianę dawn:242894.
Pełny przewodnik znajdziesz w zaktualizowanej dokumentacji Tworzenie aplikacji za pomocą WebGPU.
W wersjach pakietów jest teraz dostępny port „zdalny” Emdawnwebgpu. Migawka tego portu jest dostępna w Emscripten 4.0.10+, który obsługuje teraz porty hostowane zewnętrznie. Przełączenie na Emdawnwebgpu wymaga teraz tylko zmiany jednej flagi z emcc -sUSE_WEBGPU na emcc --use-port=emdawnwebgpu. Zobacz Emscripten PR #24303, #24220 i Dawn CL 243214.
Obejmuje to tylko niektóre z najważniejszych informacji. Zapoznaj się z pełną listą commitów.
Nowości w WebGPU
Lista wszystkich tematów omówionych w serii Nowości 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 działanie funkcji 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
- Ukoń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
- Wycofanie 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ązanego
- Zmiany wymagań dotyczących rozmiaru w przypadku buforów mapowanych podczas tworzenia
- Raport o architekturze najnowszych układów GPU
- Wycofanie 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
- Krótszy czas kompilacji shadera w D3D12
- Zapisywanie i kopiowanie obrazów z elementu canvas
- Zniesienie ograniczeń trybu zgodności
- Aktualizacje Dawn
Chrome 135
- Zezwalanie na tworzenie układu potoku z układem grupy powiązań null
- Zezwalanie na rozszerzanie widocznych obszaró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ń systemów uczących się 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 wartością undefined
- Zmiany reguł wyrównywania WGSL
- Zwiększenie wydajności WGSL dzięki discard
- Używanie displaySize w VideoFrame w przypadku tekstur zewnętrznych
- Obsługa obrazów z orientacją inną niż domyślna za pomocą copyExternalImageToTexture
- Ulepszanie środowiska deweloperskiego
- Włączanie trybu zgodności za pomocą featureLevel
- Czyszczenie eksperymentalnych funkcji podgrup
- Wycofanie 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 JavaScript
- 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łębokości
- Wbudowane funkcje skanowania włącznie dla podgrup
- Eksperymentalna obsługa rysowania pośredniego
- Opcja kompilacji modułu shadera strict math
- Usuwanie GPUAdapter requestAdapterInfo()
- Aktualizacje Dawn
Chrome 130
- Mieszanie z 2 źródeł
- Krótszy czas kompilacji shadera w Metal
- Wycofanie GPUAdapter requestAdapterInfo()
- Aktualizacje Dawn
Chrome 129
Chrome 128
- Eksperymentowanie z podgrupami
- Wycofanie ustawiania odchylenia głębokości 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ększenie limitu maxTextureArrayLayers
- Optymalizacja przesyłania buforów w backendzie Vulkan
- Krótszy czas kompilacji shadera
- 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łębokości
- Aktualizacje Dawn
Chrome 122
- Poszerzanie zasięgu dzięki trybowi zgodności (funkcja w trakcie opracowywania)
- Zwiększenie limitu maxVertexAttributes
- Aktualizacje Dawn
Chrome 121
- Obsługa WebGPU na Androidzie
- Używanie DXC zamiast FXC do kompilacji shadera w systemie Windows
- Zapytania o sygnaturę czasową w przepływach 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łębokości i szablonu
- Aktualizacje informacji o adapterze
- Kwantyzacja zapytań o sygnaturę czasową
- Funkcje czyszczenia
Chrome 119
- Tekstury zmiennoprzecinkowe 32-bitowe z filtrowaniem
- Format wierzchołka 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ń
- Wyłączanie błędów podczas asynchronicznego tworzenia potoku, gdy urządzenie jest utracone
- 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 zwracane przez GPUAdapter
requestDevice() - Płynne odtwarzanie wideo, 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 układu GPU przy zasilaniu prądem zmiennym
- Ulepszanie środowiska deweloperskiego
- Aktualizacje Dawn
Chrome 114
- Optymalizacja JavaScriptu
- getCurrentTexture() w niekonfigurowanym elemencie canvas zgłasza błąd InvalidStateError
- Aktualizacje WGSL
- Aktualizacje Dawn