תאריך פרסום: 26 במרץ 2025
מתן הרשאה ליצירת פריסה של צינור עיבוד נתונים עם פריסה של קבוצת קישור null
בעבר, כדי ליצור פריסה ריקה של קבוצת קישורים היה צריך להוסיף קבוצת קישורים עם אפס קישורים, וזה היה לא נוח. אין צורך בכך יותר, כי עכשיו מותר להשתמש בתצוגות של קבוצות קישור null, והן מתעלמות כשיוצרים תצוגה של צינור עיבוד נתונים. כך הפיתוח יהיה קל יותר.
לדוגמה, יכול להיות שתרצו ליצור צינור עיבוד נתונים שמשתמש רק בפריסות של קבוצות קישור 0 ו-2. אפשר להקצות את פריסת הקבוצה המקושרת 1 לנתוני הפירורים ואת פריסת הקבוצה המקושרת 2 לנתוני הנקודות, ואז לבצע עיבוד באמצעות עיבוד גרפי ללא שגיאת שגיאה. בעיה מס' 377836524
const bgl0 = myDevice.createBindGroupLayout({ entries: myGlobalEntries });
const bgl1 = myDevice.createBindGroupLayout({ entries: myFragmentEntries });
const bgl2 = myDevice.createBindGroupLayout({ entries: myVertexEntries });
// Create a pipeline layout that will be used to render without a fragment shader.
const myPipelineLayout = myDevice.createPipelineLayout({
bindGroupLayouts: [bgl0, null, bgl2],
});
לאפשר לממשקי תצוגה להשתרע מעבר לגבולות של יעדי הרינדור
הדרישות לאימות חלון התצוגה הוגבלו כדי לאפשר לחלונות תצוגה לחרוג מגבולות יעד הרינדור. האפשרות הזו שימושית במיוחד לציור רכיבים דו-ממדיים, כמו ממשק משתמש, שעשויים להימשך מחוץ למסך הנוכחי. בעיה 390162929
const passEncoder = myCommandEncoder.beginRenderPass({
colorAttachments: [
{
view: myColorTexture.createView(),
loadOp: "clear",
storeOp: "store",
},
],
});
// Set a viewport that extends past the render target's bounds by 8 pixels
// in all directions.
passEncoder.setViewport(
/*x=*/ -8,
/*y=*/ -8,
/*width=*/ myColorTexture.width + 16,
/*height=*/ myColorTexture.height + 16,
/*minDepth=*/ 0,
/*maxDepth=*/ 1,
);
// Draw geometry and complete the render pass as usual.
גישה קלה יותר למצב התאימות הניסיוני ב-Android
הדגל chrome://flags/#enable-unsafe-webgpu
מאפשר עכשיו לבדו את כל היכולות הנדרשות למצב התאימות הניסיוני של WebGPU ב-Android. כך תוכלו לבקש GPUAdapter במצב תאימות באמצעות האפשרות featureLevel: "compatibility"
, ואפילו לקבל גישה לקצה העורפי של OpenGL ES במכשירים שאין בהם תמיכה ב-Vulkan. דוגמה לכך מופיעה בבעיה dawn:389876644.
// Request a GPUAdapter in compatibility mode.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });

הסרת המגבלה maxInterStageShaderComponents
כפי שהודענו בעבר, המגבלה maxInterStageShaderComponents הוסרה בגלל שילוב של גורמים:
- יתירות עם
maxInterStageShaderVariables
: המגבלה הזו כבר משמשת למטרה דומה, היא קובעת את כמות הנתונים המועברים בין שלבי ה-shader. - אי-התאמות קלות: יש הבדלים קלים באופן שבו שתי המגבלות מחושבות, אבל ההבדלים האלה הם קלים וניתן לנהל אותם ביעילות במסגרת המגבלה
maxInterStageShaderVariables
. - פשטות: הסרת
maxInterStageShaderComponents
משפרת את ממשק ה-shader ומפחיתה את המורכבות עבור המפתחים. במקום לנהל שתי מגבלות נפרדות עם הבדלים עדינים, הם יכולים להתמקד במגבלהmaxInterStageShaderVariables
שמתאימה יותר לשם שלה ומקיפה יותר.
ראו כוונה להסרה ובעיה 364338810.
עדכונים בנושא Dawn
אי אפשר יותר להשתמש במדגם סינון כדי לדגום טקסטורת עומק. כתזכורת, אפשר להשתמש בטקסטורת עומק רק עם Sampler ללא סינון או עם Sampler להשוואה. בעיה מס' 379788112
המבנים WGPURequiredLimits
ו-WGPUSupportedLimits
פורסים ל-WGPULimits
. בעיה 374263404
השמות של המבנים הבאים השתנו. בעיה מס' 42240793
- האפשרות
WGPUImageCopyBuffer
נקראתWGPUTexelCopyBufferInfo
עכשיו - האפשרות
WGPUImageCopyTexture
נקראתWGPUTexelCopyTextureInfo
עכשיו - האפשרות
WGPUTextureDataLayout
נקראתWGPUTexelCopyBufferLayout
עכשיו
המאפיינים subgroupMinSize
ו-subgroupMaxSize
נוספו למבנה WGPUAdapterInfo
. בקטע webgpu-headers PR
עכשיו אפשר לעקוב אחרי השימוש ב-Dawn API ב-Metal כשמריצים את התוכנית עם משתנה הסביבה DAWN_TRACE_FILE_BASE
, שמציג קובץ .gputrace שאפשר לטעון מאוחר יותר ל-Metal Debugger של XCode. אפשר לעיין במסמכי העזרה של Debugging Dawn.
כאן מפורטות רק כמה מהנקודות העיקריות. רשימת ההצהרות המלאה
מה חדש ב-WebGPU
רשימה של כל מה שנדון בסדרה מה חדש ב-WebGPU.
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
- שילוב של שני מקורות
- שיפורי זמן הידור של שפות Shader ב-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
- מעבר למגבלות
- שינויים במצב של עומק-המרקע
- עדכונים לגבי פרטי המתאם
- קידוד (quantization) של שאילתות עם חותמות זמן
- תכונות לניקוי האביב
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