Co nowego w WebGPU (Chrome 117)

François Beaufort
François Beaufort

Nieskonfigurowany bufor wierzchołków

Przekazanie null zamiast GPUBuffer na setVertexBuffer() na GPURenderPassEncoder lub GPURenderBundleEncoder umożliwia anulowanie wcześniej ustawionego bufora wierzchołków w danym boksie. Zapoznaj się z problemem świt: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 null zamiast GPUBindGroup na setBindGroup() na GPURenderPassEncoder lub GPURenderBundleEncoder pozwala cofnąć ustawienie wcześniej ustawionej grupy powiązań w danym przedziale. Zapoznaj się z problemem świt: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 tworzenia potoku asynchronicznego w przypadku utraty urządzenia

Metody createComputePipelineAsync() i createRenderPipelineAsync() metody GPUDevice zwracają obietnicę, która kończy się po zakończeniu tworzenia potoku. Od teraz błędy wynikające z tworzenia potoku asynchronicznego będą wyciszone, gdy GPUDevice będzie lost, aby utracone urządzenia działały jak najlepiej. Zobacz problem o świcie:1874.

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

Tworzenie modułu cieniowania SPIR-V z użyciem createShaderModule() powoduje teraz błąd typu, chyba że uruchomisz Chrome z obsługą „Unsafe WebGPU Support” flag, ponieważ SPIR-V nie jest częścią specyfikacji WebGPU. Przed tą zmianą używanie SPIR-V powodowało wygenerowanie błędu GPUInternalError. Zobacz zmianę chromium:4711911.

Poprawianie wrażeń deweloperów

Komunikat o błędzie weryfikacji dotyczący 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 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 zużywają mniej pamięci. Zobacz problem: świt:1933.

Aktualizacje o świcie

Interfejs wgpu::RequestAdapterOptionsBackendType jest teraz częścią pakietu wgpu::RequestAdapterOptions, co ułatwia aplikacjom wysyłanie żądań do konkretnego backendu po uzyskaniu adaptera. Zobacz ten przykład i problem świt:1875.

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

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

Na potrzeby środowiska Node.js wdrożyliśmy kilka dodatkowych metod. Zobacz zmianę daty:142465.

Interfejs API webgpu.h C zmienił typ wartości logicznych z stdbool na WGPUBool, czyli na uint32_t. Ta zmiana ma zapewnić, że interfejs API ma odpowiedni interfejs ABI w języku C i C++.

To tylko niektóre z najważniejszych informacji. Zapoznaj się z pełną listą zatwierdzeń.

Co nowego w WebGPU

Lista wszystkiego, co zostało omówione w serii Co nowego w WebGPU.

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