Co nowego w WebGPU (Chrome 114)

François Beaufort
François Beaufort

Optymalizacja JavaScriptu

Współpracownicy Chromium przyspieszyli działanie WebGPU w przypadku metod GPUComputePassEncoder, GPURenderPassEncoderGPUCommandEncoder, zmniejszając obciążenie związane z wykonywaniem wywołań z wygenerowanego kodu w silniku JavaScript V8 do modułów obsługi C++ w silniku renderowania Blink. Zobacz problem chromium:1417558.

Poniższy mikrobenczmark pokazuje, że czas procesora potrzebny na wywołania z JavaScriptu zmniejszył się z ok. 0,5 ms na 10 tys. rysowań do ok. 0,3 ms na 10 tys. rysowań, co oznacza poprawę o 40%.

Zrzut ekranu z wykresem porównawczym przeglądarki Chrome pokazującym ulepszenia szybkich wywołań.
Wykres porównawczy Chrome pokazujący ulepszenia w szybkich wywołaniach (źródło).

getCurrentTexture() na niekonfigurowanym płótnie zgłasza błąd InvalidStateError

Wywołanie metody GPUCanvasContext getCurrentTexture() na niekonfigurowanym elemencie canvas powoduje teraz zgłoszenie błędu InvalidStateError zamiast OperationError zgodnie ze specyfikacją WebGPU. Zobacz problem chromium:1424461.

const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError

Aktualizacje WGSL

Wektory wypełnione zerami typu AbstractInt można teraz zapisywać jako vec2(), vec3()vec4(). Zobacz issue tint:1892. Na przykład:

  • vec2(): vec2(0,0)
  • vec3(): vec3(0,0,0)
  • vec4(): vec4(0,0,0,0)

Aktualizacje o świcie

Ulepszanie komunikatów o błędach

Etykiety opisowe nieprawidłowych obiektów nie są już usuwane, dzięki czemu możesz je zobaczyć w komunikatach o błędach. Zobacz problem dawn:1771.

Dodawanie brakujących interfejsów API dla Node.js

Metody GPUAdapter::requestAdapterInfo()GPUBuffer::getMapState() są teraz zaimplementowane w Node.js. Zobacz problem dawn:1761.

Nowości w WebGPU

Lista wszystkich tematów omówionych w serii Co nowego w WebGPU.

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