מה חדש ב-WebGPU (Chrome {8/}117)

François Beaufort
François Beaufort

איך מבטלים את ההגדרה של מאגר קודקודים

העברת null במקום GPUBuffer אל setVertexBuffer() ב-GPURenderPassEncoder או ב-GPURenderBundleEncoder מאפשרת לבטל את ההגדרה של מאגר קודקודים שהוגדר קודם בחריץ נתון. issue dawn:1675

// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);

ביטול ההגדרה של קבוצת הקישור

העברת הערך null במקום GPUBindGroup אל setBindGroup() ב-GPURenderPassEncoder או ב-GPURenderBundleEncoder מאפשרת לבטל את ההגדרה של קבוצת קישור שהוגדרה בעבר בחריץ נתון. issue dawn:1675

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

השבתת שגיאות שנובעות מיצירת צינור עיבוד נתונים אסינכררוני כשהמכשיר אבד

השיטות createComputePipelineAsync() ו-createRenderPipelineAsync() של GPUDevice מחזירות הבטחה (promise) שמתמלאת כשהיצירה של צינור עיבוד הנתונים מסתיימת. מעכשיו והלאה, שגיאות שנוצרות במהלך יצירת צינור עיבוד נתונים אסינכררוני יושתקו כשהערך של GPUDevice הוא lost, כדי שהמכשירים שאבדו ייראו כפועלים ככל האפשר. dawn issue:1874

עדכונים בנושא יצירת מודולים של שגיאות SPIR-V

יצירת מודול שדר (shader) של SPIR-V באמצעות createShaderModule() גורמת עכשיו להודעת שגיאה מסוג TypeError, אלא אם מריצים את Chrome עם הדגל 'תמיכה לא בטוחה ב-WebGPU', כי SPIR-V לא נכלל במפרט של WebGPU. לפני השינוי הזה, שימוש ב-SPIR-V היה גורם ליצירה של GPUInternalError במקום זאת. ראו שינוי chromium:4711911.

שיפור חוויית המפתחים

הודעה משופרת על שגיאת אימות של קישורים של פריסה של קבוצת קישורים ב-vertex shader, עבור מאגר אחסון לקריאה וכתיבה וקישור של טקסטורה לאחסון לכתיבה בלבד. issue dawn:1883

אחסון צינורות עיבוד נתונים במטמון עם פריסה שנוצרת באופן אוטומטי

צינורות עיבוד נתונים שנוצרו באמצעות createRenderPipeline({ layout: "auto" }) מנצלים עכשיו את מנגנוני האחסון במטמון ב-Chrome. המשמעות היא שהצינורות האלה ייוצרו בצורה יעילה יותר וישתמשו בפחות זיכרון. issue dawn:1933

עדכונים של Dawn

ה-wgpu::RequestAdapterOptionsBackendType הוא עכשיו חלק מ-wgpu::RequestAdapterOptions כדי שיהיה קל יותר לאפליקציות לבקש קצה עורפי ספציפי כשהן מקבלות מתאם. אפשר לעיין בדוגמה הבאה ובבעיה dawn:1875.

wgpu::RequestAdapterOptions options = {
    .backendType = wgpu::BackendType::D3D12};

// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);

הטמענו כמה שיטות נוספות ל-Node.js. change dawn:142465

סוג הערכים הבוליאניים ב-API ל-C‏ webgpu.h השתנה מ-stdbool ל-WGPUBool, שהוא uint32_t. השינוי הזה בוצע כדי להבטיח של-API יש ABI מקביל ב-C וב-C++.

כאן מפורטות רק חלק מהנקודות העיקריות. רשימת ההצהרות המלאה

מה חדש ב-WebGPU

רשימה של כל מה שנדון בסדרה מה חדש ב-WebGPU.

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113