Neu bei WebGPU (Chrome 114)

François Beaufort
François Beaufort

JavaScript optimieren

Chromium-Beitragende haben die WebGPU-Leistung für die Methoden GPUComputePassEncoder, GPURenderPassEncoder und GPUCommandEncoder verbessert, indem sie den Aufwand für Aufrufe aus generiertem Code in der V8-JavaScript-Engine an C++-Handler in der Blink-Rendering-Engine reduziert haben. Weitere Informationen finden Sie unter chromium:1417558.

Das folgende Microbenchmark zeigt, dass die CPU-Zeit von Aufrufen aus JavaScript von etwa 0,5 ms pro 10.000 Ziehungen auf etwa 0,3 ms pro 10.000 Ziehungen sinkt. Das entspricht einer Verbesserung von 40 %.

Screenshot eines Chrome-Browser-Benchmarkdiagramms, das Verbesserungen bei schnellen Anrufen zeigt.
Chrome-Benchmarkdiagramm mit Verbesserungen bei schnellen Anrufen (Quelle).

„getCurrentTexture()“ für nicht konfigurierte Canvas löst „InvalidStateError“ aus

Wenn die Methode GPUCanvasContext getCurrentTexture() für ein nicht konfiguriertes Canvas aufgerufen wird, wird jetzt gemäß der WebGPU-Spezifikation InvalidStateError anstelle von OperationError ausgelöst. Siehe chromium:1424461.

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

WGSL-Updates

Mit Nullen gefüllte Vektoren vom Typ 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

Fehlermeldungen verbessern

Deskriptorlabels für ungültige Objekte werden nicht mehr entfernt, sodass sie in Fehlermeldungen angezeigt werden 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.

Neues zu WebGPU

Eine Liste mit allen Themen, die in der Reihe Neu in WebGPU behandelt wurden.

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