Neu bei WebGPU (Chrome 114)

François Beaufort
François Beaufort

JavaScript optimieren

Chromium-Entwickler haben die WebGPU-Leistung für die Methoden GPUComputePassEncoder, GPURenderPassEncoder und GPUCommandEncoder beschleunigt, indem sie den Overhead bei Aufrufen von generiertem Code in der V8-JavaScript-Engine an C++-Handler in der Blink-Rendering-Engine reduziert haben. Siehe issue chromium:1417558.

Der folgende Mikrobenchmark zeigt, dass die CPU-Zeit von Aufrufen aus JavaScript von etwa 0,5 ms pro 10.000 Zeichnungen auf etwa 0,3 ms pro 10.000 Zeichnungen gesunken ist, was einer Verbesserung von 40% entspricht.

Screenshot des Chrome-Benchmark-Diagramms mit Verbesserungen für schnelle Anrufe
Chrome-Benchmark-Diagramm mit Verbesserungen bei schnellen Aufrufen (Quelle).

getCurrentTexture() auf nicht konfiguriertem Canvas löst InvalidStateError aus

Wenn die Methode GPUCanvasContext getCurrentTexture() auf einem nicht konfigurierten Canvas aufgerufen wird, wird jetzt gemäß der WebGPU-Spezifikation InvalidStateError statt OperationError ausgegeben. Weitere Informationen finden Sie unter Problem chromium:1424461.

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

WGSL-Updates

Null-gefüllte Vektoren von AbstractInt können jetzt als vec2(), vec3() und vec4() geschrieben werden. Siehe issue tint:1892. Beispiel:

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

Dawn-Updates

Verbesserte Fehlermeldungen

Deskriptorlabels für ungültige Objekte werden nicht mehr gelöscht, sodass Sie sie in Fehlermeldungen sehen können. Siehe Problem dawn:1771.

Fehlende APIs für Node.js hinzufügen

Die Methoden GPUAdapter::requestAdapterInfo() und GPUBuffer::getMapState() sind jetzt für Node.js implementiert. Siehe Problem dawn:1761.

Das ist neu bei WebGPU

Eine Liste aller Themen, die in der Reihe Was ist neu in WebGPU? behandelt wurden.

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