מה חדש ב-WebGPU (Chrome 114)

François Beaufort
François Beaufort

אופטימיזציה של JavaScript

השותפים ל-Chromium האיצו את הביצועים של WebGPU בשיטות GPUComputePassEncoder, GPURenderPassEncoder ו-GPUCommandEncoder על ידי צמצום התקורה של ביצוע קריאות מקוד שנוצר במנוע V8 JavaScript אל handlers של C++ במנוע העיבוד של Blink. בעיה chromium:1417558

בבדיקה הבאה של מיקרו-ביצועים מוצג זמן המעבד של קריאות מ-JavaScript שנמוך מ-0.5 אלפיות השנייה לכל 10,000 משיכות, לעומת 0.3 אלפיות השנייה לכל 10,000 משיכות, כלומר שיפור של 40%.

צילום מסך של תרשים השוואה לדפדפן Chrome, שבו מוצגים שיפורים בשיחות מהירות.
תרשים של נקודת השוואה ב-Chrome שמוצגות בו השיפורים בשיחות מהירות (מקור).

getCurrentTexture()‎ בקנבס לא מוגדר גורם להודעת השגיאה InvalidStateError

קריאה ל-method GPUCanvasContext getCurrentTexture() באזור עריכה שלא הוגדר מובילות עכשיו InvalidStateError במקום OperationError, בהתאם למפרט של WebGPU. מידע נוסף זמין במאמר בעיה ב-chromium:1424461.

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

עדכונים לגבי WGSL

עכשיו אפשר לכתוב וקטורים של AbstractInt שממולאים באפסים כ-vec2(),‏ vec3() ו-vec4(). ראו גוון הבעיה:1892. לדוגמה:

  • vec2() הוא vec2(0,0)
  • vec3() הוא vec3(0,0,0)
  • vec4() הוא vec4(0,0,0,0)

עדכונים של Dawn

שיפור הודעות שגיאה

תוויות של תיאורים לאובייקטים לא חוקיים לא נמחקות יותר, כך שתוכלו לראות אותן בהודעות השגיאה. issue dawn:1771

הוספת ממשקי API חסרים ל-Node.js

השיטות GPUAdapter::requestAdapterInfo() ו-GPUBuffer::getMapState() מיושמות עכשיו ב-Node.js. issue dawn:1761

מה חדש ב-WebGPU

רשימה של כל מה שדיברנו עליו בסדרה מה חדש ב-WebGPU.

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