Co nowego w WebGPU (Chrome 117)

François Beaufort
François Beaufort

Nieskonfigurowany bufor wierzchołka

Przekazanie wartości null zamiast GPUBuffer do setVertexBuffer()GPURenderPassEncoder lub GPURenderBundleEncoder pozwala zresetować wcześniej ustawiony bufor wierzchołka w danym gnieździe. Zobacz issue dawn:1675.

// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);

Usuń grupę powiązań

Przekazanie wartości null zamiast GPUBindGroup do setBindGroup() na GPURenderPassEncoder lub GPURenderBundleEncoder pozwala zresetować wcześniej ustawioną grupę wiązania w danym gnieździe. Zobacz issue dawn:1675.

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

Wyciszanie błędów podczas tworzenia asynchronicznego potoku w przypadku utraty urządzenia

Metody createComputePipelineAsync() i createRenderPipelineAsync() obiektu GPUDevice zwracają obietnicę, która zostanie spełniona po zakończeniu tworzenia potoku. Od teraz błędy z tworzenia asynchronicznego kanału będą ignorowane, gdy GPUDevice będzie równa lost, aby zgubione urządzenia mogły działać jak najdłużej. Zobacz problem o świcie:1874.

Aktualizacje dotyczące tworzenia modułu cieniowania SPIR-V

Tworzenie modułu shadera SPIR-V za pomocą createShaderModule() powoduje teraz wyjątek TypeError, chyba że uruchomisz Chrome z flagą „Unsafe WebGPU Support”, ponieważ SPIR-V nie jest częścią specyfikacji WebGPU. Przed wprowadzeniem tej zmiany użycie SPIR-V powodowałoby zamiast tego wygenerowanie błędu GPUInternalError. Zobacz zmianę chromium:4711911.

Poprawianie wrażeń programistów

Komunikat o błędzie weryfikacji dla powiązań układu grup powiązań w cieniowaniu wierzchołków został ulepszony pod kątem buforów pamięci do odczytu i zapisu oraz wiązań tekstur pamięci tylko do zapisu. Zobacz problem od świtu:1883.

Buforowanie przepływów danych za pomocą automatycznie wygenerowanego układu

Prace przetwarzania utworzone za pomocą 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: świt:1933.

Aktualizacje świtu

Aby ułatwić aplikacjom żądanie określonego backendu podczas uzyskiwania adaptera, wgpu::RequestAdapterOptionsBackendType jest teraz częścią wgpu::RequestAdapterOptions. Zobacz ten przykład i problem świt:1875.

wgpu::RequestAdapterOptions options = {
    .backendType = wgpu::BackendType::D3D12};

// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);

W Node.js zaimplementowano kilka dodatkowych metod. Zobacz change dawn:142465.

Interfejs API C webgpu.h ma teraz typ wartości logicznych stdbool zamiast WGPUBool, który jest uint32_t. Ta zmiana została wprowadzona, aby zapewnić interfejsowi API odpowiedni ABI w językach C i C++.

Obejmuje to tylko niektóre najważniejsze informacje. Zobacz pełną listę zatwierdzeń.

Co nowego w WebGPU

Lista wszystkich tematów omawianych w cyklu Co nowego w WebGPU.

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113