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

François Beaufort
François Beaufort

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

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

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

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

getCurrentTexture() בבד ציור לא מוגדר גורם לשגיאה InvalidStateError

קריאה לשיטה GPUCanvasContext getCurrentTexture() באזור עריכה שלא הוגדר תגרום עכשיו ל-InvalidStateError במקום OperationError, בהתאם למפרט של WebGPU. ראו בעיה כרום: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 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