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

François Beaufort
François Beaufort

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

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

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

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

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

קריאה לשיטה 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)

עדכונים בשעות השחר

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

תוויות מתארות של אובייקטים לא חוקיים לא מוסרות יותר כדי שניתן יהיה לראות אותן בהודעות שגיאה. להצגת השחר:1771.

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

השיטות GPUAdapter::requestAdapterInfo() ו-GPUBuffer::getMapState() מוטמעות עכשיו ב-Node.js. להצגת השחר:1761.

מה חדש ב-WebGPU

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

Chrome 124

Chrome 123

גרסה 122 של Chrome

גרסה 121 של Chrome

Chrome 120

גרסה 119 של Chrome

גרסה 118 של Chrome

גרסה 117 של Chrome

גרסה 116 של Chrome

Chrome 115

Chrome 114

גרסה 113 של Chrome