תוספי השפה הנתמכים של WGSL
החבר wgslLanguageFeatures
באובייקט GPU
מפרט את השמות של תוספי השפה הנתמכים של WGSL. תוספי שפה נתמכים ב-WGSL מופעלים באופן אוטומטי, לכן אין צורך לבקש אותם באופן מפורש. הרשימה הזו ריקה כרגע, אבל צפויות להיות הרבה כאלה בעתיד (לדוגמה, do-while loops
). מידע נוסף זמין בעלות השחר:1777.
if (navigator.gpu.wgslLanguageFeatures?.has("unknown-feature")) {
// Use unknown-feature in WGSL shader code.
}
תמיכה ניסיונית ב-Direct3D 11
צוות Chromium עובד על הוספת תמיכה ב-WebGPU ב-Direct3D 11. עכשיו אפשר להתנסות בו באופן מקומי על ידי הפעלת Chrome ב-Windows עם הדגלים בשורת הפקודה --enable-unsafe-webgpu --use-webgpu-adapter=d3d11
. לעיון בבעיה בזריחה:1705.
קבל GPU נפרד כברירת מחדל כאשר מחובר לחשמל
במכשירי macOS עם שתי מעבדי GPU, אם מפעילים את requestAdapter()
ללא אפשרות powerPreference
, יחידת ה-GPU הנפרדת מוחזרת כשהמכשיר של המשתמש מחובר לחשמל. אחרת, ה-GPU המשולב מוחזר. ראו שינוי 4499307.
שיפור חוויית המפתחים
אזהרות חדשות בכלי הפיתוח
אם נעשה שימוש במפתח depth
בתוך GPUExtend3DDict
, מוצגת אזהרה במסוף כלי הפיתוח כי המפתח הנכון הוא depthOrArrayLayers
. מידע נוסף על בעיה כרום:1440900.
מוצגת אזהרה גם אם ב-GPUBlendComponent
יש שילוב של חברים מפורשים וחברים שמוגדרים כברירת מחדל. להצגת השחר:1785.
למרות ששליחה או תיקו של קובץ בגודל אפס הן תקפות, האזהרה מעודדת מפתחים להימנע מהן כשהדבר אפשרי. להצגת השחר:1786.
הודעות שגיאה טובות יותר
הודעת שגיאה משופרת מוצגת עכשיו כשמשתמשים בGPUCommandEncoder
אם כבר בוצעה קריאה ל-finish()
. להצגת השחר:1736.
כששולחים מאגרי פקודות עם אובייקטים מושמדים, התוויות של מאגרי הפקודות ששימשו ב-submit()
מוצגות עכשיו בהודעת השגיאה. לעיון בעלות השחר:1747.
החלק הלא חוקי של מצב העומק של שבלונה מצוין עכשיו בהודעת השגיאה במהלך האימות של depthStencil
. להצגת הבעיה: שחר: 1735.
בהודעה על שגיאת האימות minBindingSize
מדווחים עכשיו על הקבוצה ועל מספר הקישור שנכשל באימות, וגם על המאגר. להצגת בעיה בזריחה:1604.
שיפרנו את הודעות השגיאה שהוחזרו על ידי השיטה mapAsync()
באובייקט GPUBuffer
כדי לעזור למפתחים במהלך ניפוי באגים. בהמשך מוצגת דוגמה ובעיית chromium:1431622.
// Create a GPU buffer and map it.
const descriptor = { size: 0, usage: GPUBufferUsage.MAP_READ };
const buffer = device.createBuffer(descriptor);
buffer.mapAsync(GPUMapMode.READ);
// Before it has been mapped, request another mapping.
try {
await buffer.mapAsync(GPUMapMode.READ);
} catch (error) {
// New! Error message tells you mapping is already pending.
console.warn(error.message);
}
תוויות בכלים לניפוי באגים ב-macOS
מתג לניפוי באגים use_user_defined_labels_in_backend
מאפשר להעביר תוויות אובייקטים לקצה העורפי כך שיהיה אפשר לראות אותן בכלים לניפוי באגים ספציפיים לפלטפורמה, כמו RenderDoc, PIX או Instrument. מעכשיו, אם תפעילו ב-macOS חוויה טובה יותר לניפוי באגים, תהיה לכם חוויית ניפוי באגים טובה יותר. להצגת השחר:1784
רישום HLSL אם ההידור נכשל
המתג של dump_shaders
לניפוי באגים מאפשר לרשום ביומן ההצללות של WGSL והצללות העורפי מתורגמות. מעתה ואילך, כשתפעילו אותו לצורך ניפוי באגים, ה-HLSL יימחק אם הידור ייכשל. להצגת השחר:1681
עדכונים בשעות השחר
לא הוגדר מאגר נתונים זמני של קודקוד
העברה של nullptr
במקום wgpu::Buffer
ל-SetVertexBuffer()
ב-wgpu::RenderPassEncoder
או ב-wgpu::RenderBundleEncoder
מאפשרת לבטל את ההגדרה של מאגר נתונים זמני שהוגדר בעבר ביחידת קיבולת (Slot) נתונה. לעיון בעלות השחר:1675.
// Set vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, nullptr);
קבצים מצורפים זמניים
ניתן ליצור קבצים מצורפים שמאפשרים שפעולות עיבוד של כרטיסים יישמרו בזיכרון המשבצות, וכך נמנעים מתנועת VRAM ואפשרות למנוע הקצאת VRAM למרקמים באמצעות הגדרת השימוש ב-wgpu::TextureUsage::TransientAttachment
. התכונה הזו נתמכת רק עבור Metal ו-Vulkan. לעיון בעלות השחר של הבעיה: 1695.
wgpu::TextureDescriptor desc;
desc.format = wgpu::TextureFormat::RGBA8Unorm;
desc.size = {1, 1, 1};
desc.usage = wgpu::TextureUsage::RenderAttachment |
wgpu::TextureUsage::TransientAttachment;
auto transientTexture = device.CreateTexture(&desc);
// You can now create views from the texture to serve as transient
// attachments, e.g. as color attachments in a render pipeline.
המבנה בלי depot_tools
אפשרות חדשה ב-CMake עבור DAWN_FETCH_DEPENDENCIES
מאפשרת לאחזר יחסי תלות של שחר באמצעות סקריפט Python שקורא קובצי DEPS במקום לדרוש התקנה של depot_tools
על ידי כל הפרויקטים שתלויים בו. ראו שינוי 131750.
מה חדש ב-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
- עדכונים עם שחר