Co nowego w WebGPU (Chrome 117)

François Beaufort
François Beaufort

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);

Wyciszanie 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” (Niebezpieczna obsługa WebGPU) , 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

Ulepszyliśmy komunikat o błędzie walidacji dotyczącym powiązań układu grupy powiązań w cieniowaniu wierzchołków 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 dotyczące Dawn

Typ wgpu::RequestAdapterOptionsBackendType jest teraz częścią typu 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żyliśmy kilka dodatkowych metod dla Node.js. Zobacz zmianę dawn:142465.

Interfejs C API 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 najważniejsze informacje. 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 151–152

Chrome 149–150

Chrome 147–148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

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