Usuwanie ustawienia bufora wierzchołków
Przekazanie wartości null zamiast GPUBuffer do metody setVertexBuffer() w przypadku GPURenderPassEncoder lub GPURenderBundleEncoder umożliwia usunięcie wcześniej ustawionego bufora wierzchołków w danym slocie. Zobacz problem dawn:1675.
// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);
Usuwanie ustawienia grupy powiązań
Przekazanie wartości null zamiast GPUBindGroup do metody setBindGroup() w przypadku GPURenderPassEncoder lub GPURenderBundleEncoder umożliwia usunięcie wcześniej ustawionej grupy powiązań w danym slocie. Zobacz problem dawn:1675.
// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);
// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);
Wyłączanie błędów podczas asynchronicznego tworzenia potoku, gdy urządzenie jest niedostępne
Metody createComputePipelineAsync() i createRenderPipelineAsync() interfejsu GPUDevice zwracają obietnicę, która jest spełniana po zakończeniu tworzenia potoku. Od teraz błędy podczas asynchronicznego tworzenia potoku będą wyciszane, gdy GPUDevice jest lost, aby niedostępne urządzenia działały w jak największym stopniu. Zobacz problem dawn:1874.
Aktualizacje dotyczące tworzenia modułu cieniowania SPIR-V
Tworzenie modułu cieniowania SPIR-V za pomocą metody createShaderModule() powoduje teraz zgłoszenie błędu TypeError, chyba że Chrome jest uruchomiony z flagą „Unsafe WebGPU Support”, ponieważ SPIR-V nie jest częścią specyfikacji WebGPU. Przed tą zmianą użycie SPIR-V powodowało wygenerowanie błędu GPUInternalError.
Zobacz zmianę chromium:4711911.
Ulepszanie środowiska programisty
Komunikat o błędzie weryfikacji dotyczący powiązań układu grupy powiązań w cieniowaniu wierzchołków został ulepszony w przypadku powiązań bufora pamięci do odczytu i zapisu oraz powiązań tekstury pamięci tylko do zapisu. Zobacz problem dawn:1883.
Buforowanie potoków z automatycznie generowanym układem
Potoki utworzone za pomocą metody createRenderPipeline({ layout: "auto" }) korzystają teraz z mechanizmów buforowania w Chrome. Oznacza to, że te potoki będą tworzone wydajniej i będą zużywać mniej pamięci. Zobacz problem dawn:1933.
Aktualizacje Dawn
wgpu::RequestAdapterOptionsBackendType jest teraz częścią wgpu::RequestAdapterOptions, aby ułatwić aplikacjom żądanie konkretnego backendu podczas pobierania adaptera. Zobacz ten przykład i problem dawn:1875.
wgpu::RequestAdapterOptions options = {
.backendType = wgpu::BackendType::D3D12};
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
Wdrożono kilka dodatkowych metod dla Node.js. Zobacz zmianę dawn:142465.
Interfejs API C webgpu.h zmienił typ wartości logicznych z stdbool na WGPUBool, czyli uint32_t. Ta zmiana została wprowadzona, aby zapewnić, że interfejs API ma równoważny ABI w językach C i C++.
Obejmuje to tylko niektóre z najważniejszych informacji. Zapoznaj się z pełną listą commitów.
Nowości w WebGPU
Lista wszystkich elementów omówionych w serii Nowości w WebGPU.
Chrome 149–150
- Natychmiastowe
- Bardziej rygorystyczna weryfikacja w przypadku tymczasowych załączników
- Aktualizacje Dawn
Chrome 147–148
Chrome 146
- Obsługa trybu zgodności WebGPU w OpenGL ES 3.1
- Tymczasowe załączniki
- Rozszerzenie WGSL texture_and_sampler_let
- Aktualizacje Dawn
Chrome 145
- Rozszerzenie WGSL subgroup_uniformity
- Eksperymentalne synchroniczne mapowanie bufora w procesach roboczych
- Aktualizacje Dawn
Chrome 144
- Rozszerzenie WGSL subgroup_id
- Rozszerzenie WGSL uniform_buffer_standard_layout
- WebGPU w systemie Linux
- Szybsze metody 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 w miejscu, w którym 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ązania
- Zmiany wymagań dotyczących rozmiaru w przypadku buforów mapowanych podczas tworzenia
- Raport architektury dotyczący najnowszych procesorów graficznych
- 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żywający wskaźnika do atomowego
- Atrybut GPUAdapterInfo powerPreference
- Usuwanie atrybutu GPURequestAdapterOptions compatibilityMode
- Aktualizacje Dawn
Chrome 136
- Atrybut GPUAdapterInfo isFallbackAdapter
- Skrócenie czasu kompilacji cieniowania 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 okien widoku 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 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 odrzucaniu
- Używanie displaySize VideoFrame w przypadku tekstur zewnętrznych
- Obsługa obrazów z orientacją inną 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 elementu canvas z nieprawidłowym formatem powoduje zgłoszenie błędu JavaScript
- Ograniczenia dotyczące próbek filtrowania 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()
- Pierwotne punkty i linie nie mogą mieć odchylenia głębokości
- Wbudowane funkcje skanowania włącznie dla podgrup
- Eksperymentalna obsługa rysowania pośredniego
- Opcja kompilacji modułu cieniowania strict math
- Usuwanie GPUAdapter requestAdapterInfo()
- Aktualizacje Dawn
Chrome 130
- Mieszanie z 2 źródeł
- Skrócenie czasu kompilacji cieniowania w Metal
- Wycofanie GPUAdapter requestAdapterInfo()
- Aktualizacje Dawn
Chrome 129
Chrome 128
- Eksperymentowanie z podgrupami
- Wycofanie ustawiania odchylenia głębokości w przypadku 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 bufora w przypadku backendu Vulkan
- Skrócenie czasu kompilacji cieniowania
- 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źnika w WGSL
- Cukier syntaktyczny do dereferencji kompozytów w WGSL
- Oddzielny stan tylko do odczytu w przypadku 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 cieniowania w systemie Windows
- Zapytania o sygnaturę czasową w przypadku przejść obliczeniowych i renderowania
- Domyślne punkty wejścia do modułów cieniowania
- 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 filtrem
- 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 tekstury 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 niedostępne
- Aktualizacje dotyczące tworzenia modułu cieniowania 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() - Płynne odtwarzanie 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 procesora graficznego przy zasilaniu prądem zmiennym
- Ulepszanie środowiska programisty
- Aktualizacje Dawn
Chrome 114
- Optymalizacja JavaScriptu
- getCurrentTexture() w przypadku niekonfigurowanego elementu canvas zgłasza błąd InvalidStateError
- Aktualizacje WGSL
- Aktualizacje Dawn