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

François Beaufort
François Beaufort

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

העברה של null במקום GPUBuffer ל-setVertexBuffer() ב-GPURenderPassEncoder או ב-GPURenderBundleEncoder מאפשרת לבטל את ההגדרה של מאגר נתונים זמני שהוגדר בעבר ביחידת קיבולת (Slot) נתונה. לעיון בעלות השחר: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, אפשר לבטל את ההגדרה של קבוצת קישור שהוגדרה בעבר במשבצת מסוימת. לעיון בעלות השחר: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 עם סימון של 'תמיכה לא בטוחה באינטרנט' לפני השינוי הזה, השימוש ב-SPIR-V היה גורם ליצירה של GPUInternalError במקום זאת. מידע נוסף זמין בקטע שינוי Chromium:4711911.

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

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

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

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

עדכונים בשעות השחר

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

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

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

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

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

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

מה חדש ב-WebGPU

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

Chrome 125

Chrome 124

Chrome 123

גרסה 122 של Chrome

גרסה 121 של Chrome

Chrome 120

גרסה 119 של Chrome

גרסה 118 של Chrome

גרסה 117 של Chrome

גרסה 116 של Chrome

Chrome 115

Chrome 114

גרסה 113 של Chrome