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 Overhead von Aufrufen aus generiertem Code in der V8 JavaScript-Engine zu C++-Handlern in der Blink-Rendering-Engine reduziert haben. Siehe Problem chromium:1417558.

Der folgende Microbenchmark zeigt, dass die CPU-Zeit für Aufrufe von JavaScript von etwa 0,5 ms pro 10.000 Zeichnungen auf etwa 0,3 ms pro 10.000 Zeichnungen gesunken ist. Das entspricht einer Verbesserung von 40 %.

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

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

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

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

WGSL-Updates

Mit Nullen gefüllte Vektoren von AbstractInt können jetzt als vec2(), vec3() und vec4() geschrieben werden. Siehe Problem 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 in WebGPU

Eine Liste aller Themen, die in der Reihe „Neues in WebGPU“ behandelt wurden.

Chrome 149–150

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