מספר התכונות של WebGPU אולי ייראה מעט דל בשלב זה, אבל החידושים הגדולים ממש מעבר לפינה! הגרסאות הבאות יכללו תכונות כגון DP4a, מרקמים של אחסון לקריאה בלבד וקריאה-כתיבה, בקרת גובה-רוחב נפרדת בשבלונה ובעומק, עיבוד לפרוסות מרקם תלת-ממדי ושיפורים בהידור של תוכנת הצללה.
בינתיים, אפשר ללמוד איך לשפר את בדיקות מודל ה-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
כברירת מחדל, מספר המאפיינים המקסימלי הכולל במאגרי אחסון זמניים הוא 16. עכשיו אפשר לבקש עד 30 תכונות באמצעות המגבלה של maxVertexAttributes, כשהאפשרות נתמכת. אפשר לעיין בדוגמה הבאה ולעלות השחר: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'. לעיון בעלות השחר:2260.
השיפורים שבוצעו לאחרונה בקישורי שחר עבור Node.js כוללים:
GPUSupportedFeatures::getSize()
נוסף.- הוטמע חוסר פעילות של
GPUAdapter
. GPUInternalError
מדווח עכשיו כראוי למכשירים.- עכשיו המאפיינים ניתנים לספירה.
המאמר הזה מתייחס רק לחלק מההדגשים העיקריים. כדאי לעיין ברשימת ההתחייבויות המקיפה.
מה חדש ב-WebGPU
רשימה של כל מה שמכוסה בסדרה מה חדש ב-WebGPU.
Chrome 125
Chrome 124
- טקסטורות של אחסון לקריאה בלבד ולקריאה וכתיבה
- תמיכה ב-Service Workers ובעובדים משותפים
- מאפיינים חדשים של פרטי מתאם
- תיקוני באגים
- עדכונים עם שחר
Chrome 123
- ב-WGSL יש תמיכה בפונקציות מובנות של DP4a
- פרמטרים לא מוגבלים של מצביע ב-WGSL
- תחביר סוכר להפחתת אזכור של רכיבים ב-WGSL
- מצב קריאה בלבד נפרד להיבטים של שבלונה ועומק
- עדכונים עם שחר
גרסה 122 של Chrome
- הרחבת פוטנציאל החשיפה באמצעות מצב תאימות (תכונה שנמצאת בפיתוח)
- הגדלת המגבלה של maxVertexAttributes
- עדכונים עם שחר
גרסה 121 של Chrome
- תמיכה ב-WebGPU ב-Android
- שימוש ב-DXC במקום ב-FXC להידור של תוכנת הצללה (shader) ב-Windows
- שאילתות עם חותמת זמן באישורי מחשוב ועיבוד
- נקודות כניסה המוגדרות כברירת מחדל למודולים של תוכנת הצללה (shader)
- תמיכה ב-display-p3 כמרחב צבעים של GPUExternalTexture
- מידע על ערימות זיכרון
- עדכונים עם שחר
Chrome 120
- תמיכה בערכי נקודה צפה (floating-point) של 16 ביט ב-WGSL
- בוחנים את הגבולות
- שינויים במצב העומק של שבלונה
- עדכונים של פרטי המתאם
- יצירת כמות של שאילתות בחותמות זמן
- תכונות לניקו�� אביב
גרסה 119 של Chrome
- טקסטורות צפות של 32 ביט שניתן לסנן
- פורמט קודקוד unorm10-10-10-2
- פורמט מרקם rgb10a2uint
- עדכונים עם שחר
גרסה 118 של Chrome
- תמיכה ב-HTMLImageElement וב-ImageData ב-
copyExternalImageToTexture()
- תמיכה ניסיונית במרקם של אחסון לקריאה בלבד ולקריאה בלבד
- עדכונים עם שחר
גרסה 117 של Chrome
- ביטול הגדרה של מאגר נתונים זמני של קודקוד
- ביטול ההגדרה של קבוצת קישור
- השתקת שגיאות מיצירה של צינור עיבוד נתונים אסינכרוני כשמכשיר אבד
- עדכונים ליצירת מודול של תוכנת הצללה (shader) SPIR-V
- שיפור חוויית המפתחים
- שמירה במטמון של צינורות עיבוד נתונים עם פריסה שנוצרת באופן אוטומטי
- עדכונים עם שחר
ג��סה 116 של Chrome
- שילוב עם קודק אינטרנט
- מכשיר שאבד הוחזר על ידי GPUAdapter
requestDevice()
- הפעלת הסרטון צריכה להיות חלקה אם מתקשרים ל-
importExternalTexture()
- תאימות למפרט
- שיפור חוויית המפתחים
- עדכונים עם שחר
Chrome 115
- תוספים נתמכים של שפות WGSL
- תמיכה ניסיונית ב-Direct3D 11
- קבלת GPU נפרד כברירת מחדל כשאין חיבור לחשמל
- שיפור חוויית המפתחים
- עדכונים עם שחר
Chrome 114
- אופטימיזציה של JavaScript
- getCurrentTexture() בבד קנבס שלא הוגדר עלול לגרום ל- InvalidStateError
- עדכונים לגבי WGSL
- עדכונים עם שחר