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

François Beaufort
François Beaufort

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

העברה של null במקום GPUBuffer ל-setVertexBuffer() ב-GPURenderPassEncoder או GPURenderBundleEncoder מאפשרת לבטל את ההגדרה של מאגר נתונים זמני של קודקודים בחריץ נתון. ראו גיליון 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 מאפשרת לבטל את ההגדרה של קבוצת קישור שהוגדרה בעבר במיקום נתון. ראו גיליון 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 מחזירות הבטחה, שמטופלת בסיום היצירה של צינור עיבוד הנתונים. מעכשיו, שגיאות ביצירה של צינור עיבוד נתונים אסינכרוני יושתקו כשה-GPUDevice יהיה lost כדי לגרום למכשירים שאבדו לתפקד ככל האפשר. ראו בעיה בנוגע לשחר:1874.

עדכונים לגבי יצירת מודול של תוכנת ההצללה (shader) SPIR-V

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

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

הודעת שגיאת האימות עבור קישורי פריסה של קבוצות קישור בכלי להצללה של קודקוד שופרה עבור מאגר הנתונים הזמני של האחסון לקריאה-כתיבה וקישורי מרקם של אחסון לקריאה בלבד. ראו גיליון dawn:1883.

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

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

עדכונים לגבי זריחה

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

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

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

כמה שיטות נוספות הוטמעו ב-Node.js. ראו שינוי השחר:142465.

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

זה כולל רק חלק מהעדכונים העיקריים. אתם מוזמנים לעיין ברשימה המלאה של ההתחייבויות.

מה חדש ב-WebGPU

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

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