מה חדש ב-WebGPU ‏ (Chrome 141)

François Beaufort
François Beaufort

פורסם: 24 בספטמבר 2025

הושלם גוון IR

פרויקט ארוך טווח (מעל שנתיים וחצי) לשיפור הביצועים של החלקים הפנימיים של Tint, מהדר WGSL, הושלם. הוספנו ייצוג ביניים (IR) לחלק האחורי של המערכת, בין עץ התחביר המופשט (AST) הנוכחי לבין מחוללי הקוד של החלק האחורי של המערכת. ההשקה של IR אפשרה לצוות Chrome להסיר את כל הטרנספורמציות של AST וליצור אותן מחדש כטרנספורמציות של IR, שהן מהירות משמעותית בגלל הבדלים בארכיטקטורה. במערכת הפנימית של Tint, בחלק מהפלטפורמות, נרשם שיפור במהירות של עד פי שבעה בעקבות השינויים האלה.

ה-IR החדש הזה פותח פוטנציאל משמעותי לניתוח ולהמרה מתוחכמים של הצללות בקנה מידה גדול, ומבטיח לא רק שיפורים משמעותיים בביצועים, אלא גם דרך חלקה יותר ל-Chrome לספק תכונות חדשות ומלהיבות של WebGPU בעתיד.

החל מאבן הדרך הזו, כל מחוללי קוד ה-backend פועלים מתוך ייצוג ה-IR, כל הטרנספורמציות של ה-AST נמחקו, וכל קוד התמיכה של ה-AST להפעלת הטרנספורמציות הוסר.

במסגרת העבודה לשיפור ה-IR, חזית ה-SPIR-V (שמשמשת אפליקציות להמרה של SPIR-V ל-WGSL) הומרה מיצירת ייצוג של AST ליצירה ישירות ל-IR. השיפור הזה כולל גם תכונות שחיכו להן זמן רב, כמו תמיכה ב-float 16 בחזית ה-SPIR-V.

ניתוח טווח מספרים שלמים בקומפיילר WGSL

צוות Chrome משיק בהדרגה ניתוח חדש של טווח מספרים שלמים עבור Tint, מהדר שפת ההצללה של WebGPU. ניתוח טווח מספרים שלמים מעריך את הערכים המינימליים והמקסימליים שמשתנה של מספר שלם יכול לקבל במהלך הפעלת התוכנית, בלי להפעיל את התוכנית בפועל.

המטרה של התכונה הזו היא לשפר את היעילות על ידי צמצום הצורך בבדיקת גבולות יקרה, והיא תופעל בקרוב כברירת מחדל בכל הפלטפורמות. ראו בעיה מספר 348701956.

עדכון SPIR-V 1.4 עבור קצה העורפי של Vulkan

התמיכה ב-SPIR-V 1.4 מושקת במכשירי Android ו-ChromeOS שבהם היא זמינה. העדכון הזה מאפשר ל-Tint, מהדר WGSL, לנצל תכונות חדשות של SPIR-V, הרחבות והוראות חדשות ליצירת קוד יעילה יותר בתרחישים מסוימים כשמבצעים קומפילציה של shaders ב-Vulkan. לפרטים על בעיה 427717267

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

הכותרת webgpu.h התקנית, שמגדירה את ה-API של WebGPU C, נחשבת סוף סוף ליציבה. היציבות הזו חלה ספציפית על ה-API המרכזי שמוגדר במעלה הזרם, ולא כוללת תוספי הטמעה (לדוגמה, מ-Dawn או מ-Emdawnwebgpu), ולכן מומלץ להשתמש ב-webgpu.h שסופק על ידי ההטמעה המדויקת שאליה מקשרים. הכותרת יציבה, אבל יכול להיות שעדיין תיתקלו בהבדלים לא מכוונים בין ההטמעות, כי אנחנו ממשיכים לתקן באגים ולטפל בבעיות תאימות בסביבה העסקית. אם כן, דווחו על באג.

תודה לתורם החיצוני William Candillon. עכשיו אפשר למצוא קבצים בינאריים של Dawn שנבנו מראש כארטיפקטים ב-GitHub Actions. הם כוללים קובצי ‎ .lib סטטיים ל-Android, חבילת ‎ .XCFramework ל-Apple וכל קובצי הכותרות הנדרשים. אפשר לעיין ב-Dawn PR #39 ובדוגמה של פריטי המידע שנוצר בתהליך הפיתוח (Artifact).

המידע הזה כולל רק חלק מהנקודות העיקריות. רשימה מלאה של קומיטים

מה חדש ב-WebGPU

רשימה של כל הנושאים שמופיעים בסדרת המאמרים What's New in WebGPU.

‫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