מספר התכונות של WebGPU עשוי להיראות מעט דל הפעם, אבל הפיתוחים המשמעותיים נמצאים ממש מעבר לפינה! הגרסאות הבאות יכללו תכונות כמו DP4a, טקסטורות לאחסון לקריאה בלבד ולקריאה לכתיבה, בקרת גובה-רוחב נפרדת בסטנסיל ובעומק, עיבוד התמונה לפלחי טקסטורה בתלת-ממד ושיפורים בהידור של תוכנות הצללה (shader).
בינתיים, מומלץ לקרוא על שיפור בדיקות המודל של Web AI באמצעות תמיכה ב-WebGPU וב-WebGL ב-Headless Chrome ולמה יכול להיות ש-WebGPU מושבת או לא פועל ב-Chrome.
הרחבת פוטנציאל החשיפה באמצעות מצב תאימות (תכונה בשלבי פיתוח)
WebGPU משתלב היטב בממשקי API גרפיים מודרניים (Vulkan, Metal ו-D3D12), אבל חלק מהמכשירים לא תומכים בהם. המצב הזה מגביל את הנגישות של WebGPU, במיוחד בפלטפורמות כמו Windows (ב-31% ממשתמשי Chrome אין גרסת D3D11.1 ואילך), Android (ב-23% אין גרסה של Vulkan 1.1 ואילך) ו-ChromeOS (במגמת עלייה בשימוש ב-Vulkan).
צוות Chrome עובד על מצב תאימות ב-WebGPU כדי לטפל בבעיה באמצעות גרסה מוגבלת מעט של WebGPU שפועלת בממשקי API ישנים כמו D3D11 ו-OpenGL ES. הפעולה הזו תרחיב את בסיס המשתמשים הפוטנציאלי של WebGPU.
חשוב לציין שאפליקציות שמשתמשות במצב תאימות הן עדיין אפליקציות WebGPU תקפות לחלוטין. מכשירים ללא תמיכה במצב תאימות יוגדרו באופן חלק כברירת מחדל למתאם הליבה של WebGPU, מה שמבטיח נוחות שימוש רחבה.
אם יש לך שאלות, מומלץ לעיין בהצעה ובתגובה.
הגדלת המגבלה של maxVertexAttributes
כברירת מחדל, מספר המאפיינים המקסימלי הכולל במאגר הנתונים הזמני כשיוצרים GPURenderPipeline הוא 16. עכשיו אפשר לבקש עד 30 בקשות באמצעות המגבלה maxVertexAttributes כשהיא נתמכת. אפשר לראות את הדוגמה הבאה ואת הבעיה dawn:2223.
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxVertexAttributes < 30) {
// When the desired limit isn't supported, take action to either fall back to
// a code path that does not require the higher limit or notify the user that
// their device does not meet minimum requirements.
}
// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxVertexAttributes: 30 },
});
עדכונים לגבי זריחה
מתג חדש של מכונה בשם "expose_wgsl_experimental_features" נוסף כדי לגרום למכונה לחשוף רק את תכונות WGSL הניסיוניות, אבל לא את התכונות הלא בטוחות, כך שניתן להשתמש בתכונות WGSL ניסיוניות ובטוחות ללא צורך להפעיל את 'allow_unsafe_apis' להחליף מצב. ראו גיליון dawn:2260.
השיפורים האחרונים בקישורי Dawn ל-Node.js כוללים:
GPUSupportedFeatures::getSize()
נוסף.- הוטמעו תכונות לא פעילות של
GPUAdapter
. GPUInternalError
דווחו כראוי עבור מכשירים.- עכשיו המאפיינים ניתנים לספירה.
זה כולל רק חלק מהעדכונים העיקריים. אתם מוזמנים לעיין ברשימה המלאה של ההתחייבויות.
מה חדש ב-WebGPU
רשימה של כל מה שדיברנו עליו בסדרה מה חדש ב-WebGPU.
Chrome 128
- התנסות עם תתי-קבוצות
- הוצאה משימוש של הגדרה של הטיית עומק לקווים ולנקודות
- הסתרת האזהרה של כלי הפיתוח לגבי שגיאה שלא תועדה אםpreventDefault
- קודם כל דגימת אינטרפולציה של WGSL
- עדכונים לגבי זריחה
Chrome 127
- תמיכה ניסיונית ב-OpenGL ES ב-Android
- מאפיין המידע של GPUAdapter
- שיפורים ב-WebAssembly יכולת פעולה הדדית
- שיפור בשגיאות מקודד פקודות
- עדכונים לגבי זריחה
Chrome 126
- הגדלת המגבלה של maxTextureArrayLayers
- אופטימיזציה של העלאת מאגר נתונים זמני לקצה העורפי של Vulkan
- שיפורים בזמן האיסוף של Shader
- מאגרי הפקודות שנשלחים חייבים להיות ייחודיים
- עדכונים לגבי זריחה
Chrome 125
Chrome 124
- טקסטורות אחסון לקריאה בלבד ולקריאה-כתיבה
- תמיכה בעובדי שירות ובעובדים משותפים
- מאפיינים חדשים של פרטי מתאמים
- תיקוני באגים
- עדכונים לגבי זריחה
Chrome 123
- תמיכה בפונקציות מובנות של DP4a ב-WGSL
- פרמטרים בלתי מוגבלים של מצביע ב-WGSL
- תחביר תחבירי לביטול התייחסויות של מרוכבים ב-WGSL
- מצב קריאה בלבד נפרד להבטי שבלונה ובעומק
- עדכונים לגבי זריחה
Chrome 122
- הרחבת פוטנציאל החשיפה באמצעות מצב תאימות (תכונה בשלבי פיתוח)
- הגדלת המגבלה של maxVertexAttributes
- עדכונים לגבי זריחה
Chrome 121
- תמיכה ב-WebGPU ב-Android
- שימוש ב-DXC במקום ב-FXC להידור של תוכנת ההצללה ב-Windows
- שאילתות חותמות זמן באישורי מחשוב ועיבוד
- נקודות כניסה שמוגדרות כברירת מחדל למודולים של תוכנת ההצללה
- תמיכה ב-Display-p3 כמרחב צבעים של GPUExternalTexture
- מידע על ערימות זיכרון
- עדכונים לגבי זריחה
Chrome 120
- תמיכה בערכי נקודה צפה (floating-point) של 16 ביט ב-WGSL
- מרחיבים את הגבולות
- שינויים במצב העומק של סטנסיל
- עדכונים במידע על מתאם
- כימות שאילתות חותמות זמן
- תכונות לניקוי האביב
Chrome 119
- טקסטורות צפות של 32 ביט שניתן לסנן
- פורמט unorm10-10-10-2 קודקוד
- פורמט טקסטורה של IMAP10a2uint
- עדכונים לגבי זריחה
Chrome 118
- תמיכה ב-HTMLImageElement וב-ImageData ב-
copyExternalImageToTexture()
- תמיכה ניסיונית במרקם האחסון לקריאה בלבד ולקריאה בלבד
- עדכונים לגבי זריחה
Chrome 117
- ביטול הגדרה של מאגר נתונים זמני של קודקודים
- ביטול ההגדרה של קבוצת קישור
- השתקת שגיאות מיצירה של צינור עיבוד נתונים אסינכרוני כשהמכשיר אבד
- עדכונים ליצירת מודול של תוכנת ההצללה (shader) SPIR-V
- שיפור חוויית הפיתוח
- שמירה במטמון של צינורות עיבוד נתונים באמצעות פריסה שנוצרת באופן אוטומטי
- עדכונים לגבי זריחה
Chrome 116
- שילוב של קודק WebCodec
- המכשיר שאבד הוחזר על ידי GPUAdapter
requestDevice()
- הפעלת הסרטון ב-
importExternalTexture()
צריכה להיות חלקה - תאימות מפרטת
- שיפור חוויית הפיתוח
- עדכונים לגבי זריחה
Chrome 115
- תוספים נתמכים לשפות של WGSL
- תמיכה ניסיונית ב-Direct3D 11
- קבלת GPU נפרד כברירת מחדל בחיבור לחשמל
- שיפור חוויית הפיתוח
- עדכונים לגבי זריחה
Chrome 114
- אופטימיזציה של JavaScript
- getCurrentTexture() בבד ציור שלא הוגדר גורם לשגיאה InvalidStateError
- עדכונים ל-WGSL
- עדכונים לגבי זריחה