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