תאריך פרסום: 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 כשמעבירים את ה-shaders של 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 138
- קיצור דרך לשימוש במאגר כמשאב קישור
- שינויים בדרישות לגבי גודל מאגרים שממופים בזמן היצירה
- דוח ארכיטקטורה של מעבדי GPU מהדורות האחרונות
- הוצאה משימוש של המאפיין isFallbackAdapter ב-GPUAdapter
- עדכונים לגבי Dawn
Chrome 137
- שימוש בתצוגת טקסטורה לקישור של externalTexture
- העתקה של מאגרים בלי לציין את האופסים והגודל
- WGSL workgroupUniformLoad using pointer to atomic
- המאפיין powerPreference של GPUAdapterInfo
- הסרת המאפיין compatibilityMode של GPURequestAdapterOptions
- עדכונים לגבי Dawn
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