Nouveautés de WebGPU (Chrome 114)

François Beaufort
François Beaufort

Optimiser JavaScript

Les contributeurs Chromium ont accéléré les performances WebGPU pour les méthodes GPUComputePassEncoder, GPURenderPassEncoder et GPUCommandEncoder en réduisant la surcharge des appels du code généré dans le moteur JavaScript V8 aux gestionnaires C++ dans le moteur de rendu Blink. Consultez le problème chromium:1417558.

Le microbenchmark suivant montre que le temps processeur des appels JavaScript passe d'environ 0,5 ms pour 10 000 dessins à environ 0,3 ms pour 10 000 dessins, ce qui représente une amélioration de 40 %.

Capture d'écran du graphique de référence du navigateur Chrome montrant les améliorations apportées aux appels rapides.
Graphique de benchmark Chrome montrant les améliorations des appels rapides (source).

getCurrentTexture() sur un canevas non configuré génère InvalidStateError

L'appel de la méthode GPUCanvasContext getCurrentTexture() sur un canevas non configuré génère désormais InvalidStateError au lieu de OperationError, conformément à la spécification WebGPU. Consultez le problème chromium:1424461.

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

Modifications apportées à WGSL

Les vecteurs remplis de zéros de AbstractInt peuvent désormais être écrits sous la forme vec2(), vec3(), et vec4(). Consultez le problème tint:1892. Exemple :

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

Modifications apportées à Dawn

Amélioration des messages d'erreur

Les libellés de descripteur pour les objets non valides ne sont plus supprimés. Vous pouvez donc les voir dans les messages d'erreur. Consultez le problème dawn:1771.

Ajout d'API manquantes pour Node.js

Les méthodes GPUAdapter::requestAdapterInfo() et GPUBuffer::getMapState() sont désormais implémentées pour Node.js. Consultez le problème dawn:1761.

Nouveautés de WebGPU

Liste de tous les éléments abordés dans la série Nouveautés de WebGPU.

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