Opublikowano: 27 sierpnia 2025 r.
Żądania dotyczące urządzeń zużywają adapter
Zgodnie ze specyfikacją WebGPU adapter jest oznaczany jako "zużyty" po pomyślnym żądaniu urządzenia. W związku z tym wszystkie kolejne wywołania requestDevice() korzystające z tego samego adaptera będą teraz powodować odrzucenie obietnicy. Wcześniej te wywołania zwracały urządzenie, które zostało utracone podczas tworzenia. Zobacz problem 415825174.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
await adapter.requestDevice(); // Fails because adapter has been consumed.
Skrót do używania tekstury, gdy używany jest widok tekstury
Obiekt GPUTexture można teraz używać bezpośrednio jako GPUBindingResource, aby udostępnić go shaderowi do powiązania. Można go też używać jako GPURenderPassColorAttachment view, GPURenderPassColorAttachment resolveTarget i GPURenderPassDepthStencilAttachment view, co zwiększa wygodę. Jest to prostsze rozwiązanie niż używanie GPUTextureView do uzyskania widoku domyślnego. Zobacz problem 425906323.
const bindGroup = myDevice.createBindGroup({
layout: myPipeline.getBindGroupLayout(0),
entries: [
{ binding: 0, resource: mySampler },
{ binding: 1, resource: myTexture }, // Same as myTexture.createView()
{ binding: 2, resource: myExternalTexture },
{ binding: 3, resource: myBuffer },
],
});
WGSL textureSampleLevel obsługuje tekstury 1D
Tekstury 1D można teraz próbkować za pomocą textureSampleLevel(), aby zachować spójność z teksturami 2D. Dzięki temu możesz próbkować teksturę 1D z shadera wierzchołków, co wcześniej było możliwe tylko z shadera fragmentów za pomocą textureSample(). Zobacz problem 382514673.
Wycofanie użycia tekstury pamięci tylko do odczytu bgra8unorm
Używanie formatu "bgra8unorm" z teksturami pamięci tylko do odczytu zostało wycofane. Specyfikacja WebGPU wyraźnie na to nie zezwala, a wcześniejsze zezwolenie w Chrome było błędem, ponieważ ten format jest przeznaczony do dostępu tylko do zapisu i nie jest przenośny. Zobacz problem 427681156.
Usunięcie atrybutu GPUAdapter isFallbackAdapter
Zgodnie z wcześniejszą zapowiedzią atrybut GPUAdapter isFallbackAdapter został usunięty. Zastąpił go atrybut GPUAdapterInfo isFallbackAdapter, który został wprowadzony w Chrome 136. Zobacz zamiar usunięcia.
Aktualizacje Dawn
Funkcja wgpuInstanceGetWGSLLanguageFeatures() służy do pobierania listy funkcji języka WGSL obsługiwanych przez instancję. Wcześniej zwracała wartość WGPUStatus. Została zaktualizowana, aby nie zwracać wartości, ponieważ nie może się nie powieść. Zobacz problem 429178774.
Funkcja wgpuSurfacePresent() zwraca teraz błąd WGPUStatus, jeśli powierzchnia nie ma bieżącej tekstury. Zobacz problem 425930323.
Nowa funkcja wgpu::InstanceFeatureName::MultipleDevicesPerAdapter umożliwia adapterom tworzenie wielu urządzeń bez „zużywania się”. Zobacz problem 415825174.
Przełącznik urządzenia dump_shaders_on_failure umożliwia zrzucanie shaderów tylko w przypadku awarii na potrzeby debugowania. Dotyczy to wyłącznie backendów D3, ale w przyszłości może zostać rozszerzone na inne backendy. Zobacz problem 429187478.
W backendzie Vulkan wprowadzono kilka zmian, aby zmniejszyć obciążenie podczas przesyłania przejść renderowania, zwłaszcza w celu zwiększenia wydajności na mobilnych GPU. Na przykład: buforowanie VkFramebuffers.
Obejmuje to tylko niektóre z najważniejszych informacji. Zapoznaj się z pełną listą commitów.
Co nowego w WebGPU
Lista wszystkich informacji, które zostały omówione 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 workerach
- 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
- Usunięcie 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 dotyczące 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
- Usunięcie 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 o architekturze najnowszych 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
- Usunięcie atrybutu GPURequestAdapterOptions compatibilityMode
- Aktualizacje Dawn
Chrome 136
- Atrybut GPUAdapterInfo isFallbackAdapter
- Skrócenie czasu kompilacji shadera w D3D12
- Zapisywanie i kopiowanie obrazów z canvasu
- 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 okien widoku poza granice docelowych renderowania
- Łatwiejszy dostęp do eksperymentalnego trybu zgodności na Androidzie
- Usunięcie limitu maxInterStageShaderComponents
- Aktualizacje Dawn
Chrome 134
- Ulepszanie zadań systemów uczących się za pomocą podgrup
- Usunięcie obsługi typów tekstur z filtrem 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 programisty
- Włączanie trybu zgodności za pomocą featureLevel
- Czyszczenie eksperymentalnych funkcji podgrup
- Wycofanie limitu maxInterStageShaderComponents
- Aktualizacje Dawn
Chrome 132
- Użycie widoku tekstury
- Mieszanie tekstur zmiennoprzecinkowych 32-bitowych
- Atrybut GPUDevice adapterInfo
- Konfigurowanie kontekstu canvasu z nieprawidłowym formatem powoduje błąd JavaScriptu
- Ograniczenia dotyczące próbek filtrujących w teksturach
- Rozszerzone eksperymenty z podgrupami
- Ulepszanie środowiska programisty
- 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 multi-draw indirect
- Opcja kompilacji modułu shadera strict math
- Usunięcie GPUAdapter requestAdapterInfo()
- Aktualizacje Dawn
Chrome 130
- Mieszanie z 2 źródeł
- Skrócenie czasu 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 o nieprzechwyconym błędzie w Narzędziach deweloperskich, 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
- Skrócenie czasu 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
- Zwiększanie 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 obliczeniach i renderowaniu
- 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 wiosennego czyszczenia
Chrome 119
- Filtrowane tekstury zmiennoprzecinkowe 32-bitowe
- 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 bufora wierzchołków
- Usuwanie grupy powiązań
- Wyciszanie błędów podczas asynchronicznego tworzenia potoku, gdy urządzenie jest utracone
- Aktualizacje tworzenia modułu shadera SPIR-V
- Ulepszanie środowiska programisty
- Buforowanie potoków z automatycznie generowanym układem
- Aktualizacje Dawn
Chrome 116
- Integracja WebCodecs
- Utracone urządzenie zwrócone przez GPUAdapter
requestDevice() - Utrzymywanie płynnego odtwarzania wideo, jeśli wywoływana jest funkcja
importExternalTexture() - Zgodność ze specyfikacją
- Ulepszanie środowiska programisty
- Aktualizacje Dawn
Chrome 115
- Obsługiwane rozszerzenia języka WGSL
- Eksperymentalna obsługa Direct3D 11
- Domyślne pobieranie dyskretnego GPU przy zasilaniu prądem zmiennym
- Ulepszanie środowiska programisty
- Aktualizacje Dawn
Chrome 114
- Optymalizacja JavaScriptu
- getCurrentTexture() w niekonfigurowanym canvasie zgłasza InvalidStateError
- Aktualizacje WGSL
- Aktualizacje Dawn