Co nowego w WebGPU (Chrome 117)

François Beaufort
François Beaufort

Usuń ustawienie bufora wierzchołków

Przekazywanie null zamiast GPUBuffer do setVertexBuffer() w GPURenderPassEncoder lub GPURenderBundleEncoder pozwala cofnąć ustawienie wcześniej ustawionego bufora wierzchołków w danym przedziale. Zobacz świt problemu:1675.

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

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

Anuluj ustawienie grupy powiązań

Przekazywanie wartości null zamiast GPUBindGroup do setBindGroup() w dniu GPURenderPassEncoder lub GPURenderBundleEncoder pozwala anulować ustawioną wcześniej grupę powiązań w danym przedziale. Zobacz świt problemu:1675.

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

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

Wycisz błędy podczas tworzenia potoku asynchronicznego w przypadku utraty urządzenia

Metody createComputePipelineAsync() i createRenderPipelineAsync() obiektu GPUDevice zwracają obietnicę, która rozwiązuje się po zakończeniu tworzenia potoku. Od teraz błędy tworzenia potoku asynchronicznego będą wyciszone, gdy GPUDevice będzie miał wartość lost, aby utracone urządzenia wyglądały na jak najbardziej sprawne. Zobacz Problem z dawnym światem:1874.

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

Utworzenie modułu SPIR-V za pomocą createShaderModule() powoduje teraz błąd typu, chyba że uruchomisz Chrome z flagą „Unsafe WebGPU Support” (Obsługa niebezpiecznego WebGPU), ponieważ interfejs SPIR-V nie jest częścią specyfikacji WebGPU. Przed tą zmianą z wykorzystaniem SPIR-V zamiast tego był generowany błąd GPUInternalError. Zobacz zmianę chromium:4711911.

Poprawa wrażeń deweloperów

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

Buforowanie potoków z automatycznie generowanym układem

Potoki 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 Data wydania:1933.

Powiadomienia o świcie

wgpu::RequestAdapterOptionsBackendType jest teraz częścią pakietu wgpu::RequestAdapterOptions, aby ułatwić aplikacjom żądanie określonego backendu przy pobieraniu adaptera. Zobacz ten przykład i ten problem:1875.

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

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

W środowisku Node.js wdrożyliśmy kilka dodatkowych metod. Zobacz zmianę w świcie:142465.

Interfejs API C webgpu.h zmienił typ wartości logicznych z stdbool na WGPUBool (czyli uint32_t). Dzięki tej zmianie interfejs API ma odpowiednik ABI w językach C i C++.

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

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113