תאריך פרסום: 23 באפריל 2025
המאפיין isFallbackAdapter של GPUAdapterInfo
המאפיין הבוליאני isFallbackAdapter
של GPUAdapterInfo מציין אם ל-GPUAdapter יש מגבלות ביצועים משמעותיות בתמורה לתאימות רחבה יותר, להתנהגות צפויה יותר או לשיפור הפרטיות. ההוספה הזו הייתה נחוצה כי ספריות שמקבלות אובייקטים של GPUDevice שסופקו על ידי משתמשים לא יכלו לגשת למידע הזה דרך המאפיין adapterInfo
ב-GPUDevice. דוגמה לכך מופיעה בבעיה 403172841.
const adapter = await navigator.gpu.requestAdapter();
if (adapter?.info.isFallbackAdapter) {
// The returned adapter is a software-backed fallback adapter, which
// may have significantly lower performance and fewer features.
}
מכיוון שעדיין לא נוספה ל-Chrome תמיכה במתאמים חלופיים, הערך של isFallbackAdapter
הוא תמיד שגוי במכשירים של המשתמשים. אנחנו בודקים אם אפשר להוציא משימוש ולהסיר את המאפיין isFallbackAdapter
של GPUAdapter. כוונת שליחה
שיפורים בזמן הידור של שגיאות ב-D3D12
צוות Chrome ממשיך לשפר את Tint, המהדר של שפת ה-shader של WebGPU, על ידי הוספת ייצוג ביניים (IR) למכשירים שתומכים ב-WebGPU עם הקצה העורפי D3D12. קוד ה-IR הזה, שממוקם בין עץ התחביר המופשט (AST) של Tint לבין הכלי לכתיבה של הקצה העורפי של HLSL, יעזור לשפר את היעילות והתחזוק של המהדר, ובסופו של דבר ישפר את העבודה של המפתחים והמשתמשים. לפי בדיקות ראשוניות, הגרסה החדשה של Tint מהירה פי 10 כשמעבירים את שגיאות ה-WGSL של Unity ל-HLSL.

השיפורים האלה, שכבר זמינים ב-Android, ב-ChromeOS וב-macOS, מורחבים בהדרגה למכשירי Windows שתומכים ב-WebGPU עם הקצה העורפי D3D12. בעיה מס' 42251045
שמירה והעתקה של תמונות על קנבס
משתמשי Chrome יכולים עכשיו ללחוץ לחיצה ימנית על לוח של WebGPU ולגשת לאפשרויות בתפריט ההקשר שמירת התמונה בשם… או העתקת התמונה. בעיה 40902474

הסרת ההגבלות של מצב התאימות
התכונה הניסיונית "core-features-and-limits"
, כשהיא זמינה ב-GPUDevice, מבטלת את כל ההגבלות של סטטוס התאימות (תכונות ומגבלות) כשהדגל chrome://flags/#enable-unsafe-webgpu
מופעל. בעיה מס' 395855517
שליחת בקשה ל-GPUAdapter עם האפשרות featureLevel: "compatibility"
מעודדת את הדפדפן לבחור במצב התאימות הניסיוני של WebGPU. אם הפעולה מסתיימת ללא שגיאות, המתאם שייווצר הוא 'compatibility-defaulting'. אחרת, הערך יהיה 'core-defaulting', שזהה לשימוש באפשרות featureLevel: "core"
. בנוסף, קריאה ל-requestDevice()
ללא requiredFeatures
ו-requiredLimits
מבקשת GPUDevice עם יכולות ברירת המחדל של GPUAdapter.
מתאמים שמוגדרים כברירת מחדל ל-Core תמיד תומכים בתכונה "core-features-and-limits"
, והיא מופעלת באופן אוטומטי ב-GPUDevices שנוצרים מהם. במתאמים שמוגדרים כברירת מחדל לתאימות, יכול להיות שתהיה תמיכה בתכונה "core-features-and-limits"
וניתן יהיה לבקש אותה ב-GPUDevices שנוצרו מהם. שני סוגי המתאמים עשויים גם לתמוך בתכונות כמו "float32-blendable"
, שהיא אופציונלית גם במצב הליבה וגם במצב התאימות.
הדוגמה הבאה היא לאפליקציה שדורשת את "float32-blendable"
ותומכת בשימוש בתכונות הליבה אם הן זמינות, אבל משתמשת רק בתכונות התאימות אם תכונות הליבה לא זמינות.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
if (!adapter || !adapter.features.has("float32-blendable")) {
throw new Error("32-bit float textures blending support is not available");
}
const requiredFeatures = [];
if (adapter.features.has("core-features-and-limits")) {
requiredFeatures.push("core-features-and-limits");
}
const device = await adapter.requestDevice({ requiredFeatures });
if (!device.features.has("core-features-and-limits")) {
// Compatibility mode restrictions validation rules will apply.
}
המאפיינים הניסיוניים featureLevel
ו-isCompatibilityMode
של GPUAdapter הוסרו לטובת התכונה "core-features-and-limits"
. בעיה מס' 395855516
עדכונים בנושא Dawn
שם המאפיין המסווג InstanceDropped
של סטטוס הקריאה החוזרת שונה ל-CallbackCancelled
כדי להבהיר שהקריאה החוזרת בוטלה, אבל יכול להיות שעיבוד הרקע שמשויך לאירוע, כמו הידור צינור עיבוד נתונים, עדיין פועל. השם החדש רלוונטי יותר באופן כללי, למקרה שמנגנון ביטול נוסף יתווסף בהמשך. בעיה 520
השם של המאפיין wgpu::PopErrorScopeStatus::EmptyStack
, שמציין שלא ניתן היה להסיר את הסטאק של היקף השגיאה, שונה ל-wgpu::PopErrorScopeStatus::Error
(שגם רלוונטי יותר באופן כללי). השיחה החוזרת כוללת עכשיו גם הודעת הסבר תואמת על השגיאה, כדי לעזור בניפוי באגים. בעיה 369
כאן מפורטות רק כמה מהנקודות העיקריות. רשימת ההצהרות המלאה
מה חדש ב-WebGPU
רשימה של כל מה שנדון בסדרה מה חדש ב-WebGPU.
Chrome 136
- המאפיין isFallbackAdapter של GPUAdapterInfo
- שיפורים בזמן הידור של שגיאות ב-D3D12
- שמירה והעתקה של תמונות על קנבס
- הגבלות במצב תאימות של Lift
- עדכונים של Dawn
Chrome 135
- אפשרות ליצור פריסה של צינור עיבוד נתונים עם פריסה של קבוצת קישור null
- מתן אפשרות לחלונות תצוגה להתרחב מעבר לגבולות של יעדי הרינדור
- גישה קלה יותר למצב התאימות הניסיוני ב-Android
- הסרת המגבלה maxInterStageShaderComponents
- עדכונים של Dawn
Chrome 134
- שיפור עומסי העבודה של למידת המכונה באמצעות קבוצות משנה
- הסרת התמיכה בסוגי מרקמים שניתנים לסינון באמצעות רכיבי float כרכיבים שניתן למזג
- עדכונים לגבי Dawn
Chrome 133
- פורמטים נוספים של קודקודים מסוג unorm8x4-bgra וקודקודים עם רכיב אחד
- איך מאפשרים לבקש מגבלות לא ידועות עם ערך לא מוגדר
- שינויים בכללי היישור של WGS84
- שיפור בביצועים של WGSL באמצעות ביטול
- שימוש ב-displaySize של VideoFrame למרקמים חיצוניים
- טיפול בתמונות עם כיוונים שאינם ברירת המחדל באמצעות copyExternalImageToTexture
- שיפור חוויית המפתחים
- הפעלת מצב תאימות באמצעות featureLevel
- ניקוי של תכונות ניסיוניות של קבוצות משנה
- הוצאה משימוש של המגבלה maxInterStageShaderComponents
- עדכונים של Dawn
Chrome 132
- שימוש בתצוגת טקסטורה
- מיזוג של מרקמים מסוג float ב-32 ביט
- המאפיין adapterInfo של GPUDevice
- הגדרת הקשר של לוח הציור בפורמט לא חוקי גורמת לשגיאת JavaScript
- הגבלות על סינון של טקסטורות
- ניסוי עם תת-קבוצות מורחבות
- שיפור חוויית המפתחים
- תמיכה ניסיונית בפורמטים של טקסטורות מנורמלות ב-16 ביט
- עדכונים של Dawn
Chrome 131
- חיתוך מרחקים ב-WGSL
- GPUCanvasContext getConfiguration()
- אסור שתהיה הטיה לעומק בפרימיטיבים של נקודות וקווים
- פונקציות מובנות של סריקה כוללת לקבוצות משנה
- תמיכה ניסיונית בקריאה עקיפה של כמה פריימים
- Shader module compilation option strict math
- הסרת השיטה requestAdapterInfo() של GPUAdapter
- עדכונים של Dawn
Chrome 130
- מיזוג של שני מקורות
- שיפורי זמן הידור של שגיאות ב-Metal
- הוצאה משימוש של requestAdapterInfo() של GPUAdapter
- עדכונים של Dawn
Chrome 129
Chrome 128
- ניסוי עם תתי-קבוצות
- הוצאה משימוש של הגדרת הטיה של עומק לקווים ולנקודות
- הסתרת אזהרת DevTools על שגיאה שלא תועדה אם preventDefault
- WGSL מבצעת אינטרפולציה של הדגימה קודם ואז
- עדכונים לגבי Dawn
Chrome 127
- תמיכה ניסיונית ב-OpenGL ES ב-Android
- מאפיין המידע של GPUAdapter
- שיפורים בתאימות הדדית של WebAssembly
- שיפור שגיאות של מקודד הפקודות
- עדכונים לגבי Dawn
Chrome 126
- הגדלת המגבלה של maxTextureArrayLayers
- אופטימיזציה של העלאה למאגר לצד העורפי של Vulkan
- שיפורים בזמן הידור של שגיאות (shaders)
- מאגרי הפקודות שנשלחים חייבים להיות ייחודיים
- עדכונים לגבי Dawn
Chrome 125
Chrome 124
- טקסטורות אחסון לקריאה בלבד ולקריאה וכתיבה
- תמיכה ב-Service Workers וב-Shared Workers
- מאפיינים חדשים של פרטי מתאם
- תיקוני באגים
- עדכונים לגבי Dawn
Chrome 123
- תמיכה בפונקציות מובנות של DP4a ב-WGSL
- פרמטרים של מצביע ללא הגבלה ב-WGSL
- תחביר פשוט יותר לביטול ההפניה למשתנים מורכבים ב-WGSL
- מצב נפרד לקריאה בלבד של אספקטים של תבנית ועומק
- עדכונים לגבי Dawn
Chrome 122
- הרחבת פוטנציאל החשיפה באמצעות מצב תאימות (תכונה בפיתוח)
- הגדלת המגבלה של maxVertexAttributes
- עדכונים לגבי Dawn
Chrome 121
- תמיכה ב-WebGPU ב-Android
- שימוש ב-DXC במקום ב-FXC לצורך הידור של שגיאות ב-Windows
- שאילתות של חותמות זמן בשלבי המחשוב והעיבוד
- נקודות כניסה שמוגדרות כברירת מחדל למודולי Shader
- תמיכה ב-display-p3 כמרחב צבע של GPUExternalTexture
- מידע על ערמות זיכרון
- עדכונים של Dawn
Chrome 120
- תמיכה בערכים של נקודה צפה (floating-point) באורך 16 ביט ב-WGSL
- מעבר למגבלות
- שינויים במצב של עומק-המרקע
- עדכונים לגבי פרטי המתאם
- קידוד נתונים של שאילתות עם חותמות זמן
- תכונות לניקוי האביב
Chrome 119
- טקסטורות של מספרים ממשיים (float) ב-32 ביט שניתן לסנן
- פורמט קודקוד unorm10-10-10-2
- פורמט טקסטורה של rgb10a2uint
- עדכונים לגבי Dawn
Chrome 118
- תמיכה ב-HTMLImageElement וב-ImageData ב-
copyExternalImageToTexture()
- תמיכה ניסיונית ברקמות אחסון לקריאה וכתיבה ולקריאה בלבד
- עדכונים של Dawn
Chrome 117
- ביטול ההגדרה של מאגר הנקודות
- ביטול ההגדרה של קבוצת הקישור
- השתקת שגיאות שנובעות מיצירת צינור עיבוד נתונים אסינכררוני כשהמכשיר אבד
- עדכונים לגבי יצירת מודולים של שַדְררים ב-SPIR-V
- שיפור חוויית המפתחים
- אחסון צינורות עיבוד נתונים במטמון עם פריסה שנוצרה באופן אוטומטי
- עדכונים לגבי Dawn
Chrome 116
- שילוב WebCodecs
- מכשיר שאבד וחוזר על ידי GPUAdapter
requestDevice()
- שמירה על הפעלה חלקה של סרטונים אם מתבצעת קריאה ל-
importExternalTexture()
- תאימות למפרט
- שיפור חוויית המפתחים
- עדכונים לגבי Dawn
Chrome 115
- תוספים נתמכים לשפת WGSL
- תמיכה ניסיונית ב-Direct3D 11
- קבלת GPU נפרד כברירת מחדל בחשמל AC
- שיפור חוויית המפתחים
- עדכונים של Dawn
Chrome 114
- אופטימיזציה של JavaScript
- getCurrentTexture() ב-Canvas לא מוגדר מפעילה שגיאה מסוג InvalidStateError
- עדכונים מ-WGSL
- עדכונים של Dawn