Co nowego w WebGPU (Chrome 114)

François Beaufort
François Beaufort

Optymalizacja JavaScriptu

Współtwórcy Chromium przyspieszyli działanie WebGPU w przypadku metod GPUComputePassEncoder, GPURenderPassEncoder i GPUCommandEncoder, zmniejszając obciążenie związane z wywoływaniem funkcji z wygenerowanego kodu w silniku JavaScript V8 do 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 około 0,5 ms na 10 tys.rysunków do około 0,3 ms na 10 tys.rysunków, co stanowi poprawę o 40%.

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

getCurrentTexture() w przypadku niekonfigurowanego elementu canvas zgłasza błąd InvalidStateError

Wywołanie metody GPUCanvasContext getCurrentTexture() w przypadku niekonfigurowanego elementu canvas zgłasza teraz błąd 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() i vec4(). Zobacz problem tint:1892. Na przykład:

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

Aktualizacje Dawn

Ulepszanie komunikatów o błędach

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

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

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

Co nowego w WebGPU

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

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