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

François Beaufort
François Beaufort

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

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

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

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

הפונקציה getCurrentTexture()‎ ב-canvas לא מוגדרת, ומוחזרת השגיאה 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)

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

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

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

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

השיטות GPUAdapter::requestAdapterInfo() ו-GPUBuffer::getMapState() מיושמות עכשיו ב-Node.js. מידע נוסף זמין בבעיה dawn:1761.

מה חדש ב-WebGPU

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

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