מה חדש ב-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

יצירת מודול שדר של 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. ראו שינוי השחר: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