מה חדש ב-WebGPU‏ (Chrome 140)

François Beaufort
François Beaufort

תאריך פרסום: 27 באוגוסט 2025

בקשות מהמכשיר צורכות מתאם

על פי המפרט של WebGPU, מתאם מסומן כ'נצרך' אחרי בקשת מכשיר מוצלחת. כתוצאה מכך, כל קריאה ל-requestDevice() שמתבצעת לאחר מכן באמצעות אותו מתאם תגרום עכשיו לדחיית אובייקט ה-promise. בעבר, הקריאות האלה היו מחזירות מכשיר שאבד בזמן היצירה. ראו בעיה מספר 415825174.

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

await adapter.requestDevice(); // Fails because adapter has been consumed.

קיצור דרך לשימוש בטקסטורה במקומות שבהם נעשה שימוש בתצוגת טקסטורה

עכשיו אפשר להשתמש ב-GPUTexture ישירות כ-GPUBindingResource כדי לחשוף אותו לתוכנת הצללה (shader) לצורך קישור. אפשר גם להשתמש בו כ-GPURenderPassColorAttachment view, כ-GPURenderPassColorAttachment resolveTarget וכ-GPURenderPassDepthStencilAttachment view כדי לשפר את הארגונומיה. כך אפשר להשתמש בגישה פשוטה יותר מאשר ב-GPUTextureView כדי לקבל תצוגת ברירת מחדל. ראו בעיה מספר 425906323.

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTexture }, // Same as myTexture.createView()
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer },
  ],
});

הפונקציה textureSampleLevel של WGSL תומכת בטקסטורות חד-ממדיות

עכשיו אפשר לדגום טקסטורות חד-ממדיות באמצעות textureSampleLevel() כדי לשמור על עקביות עם טקסטורות דו-ממדיות. הפעולה הזו מאפשרת לדגום טקסטורה חד-ממדית משיידר קודקודים, שאפשר היה לעשות זאת בעבר רק משיידר מקטעים באמצעות textureSample(). מידע נוסף

הוצאה משימוש של שימוש בטקסטורות אחסון לקריאה בלבד בפורמט bgra8unorm

השימוש בפורמט "bgra8unorm" עם טקסטורות של אחסון לקריאה בלבד הוצא משימוש. הדבר הזה אסור במפורש במפרט WebGPU, והעובדה שהוא היה מותר ב-Chrome בעבר הייתה באג, כי הפורמט הזה מיועד לגישת כתיבה בלבד והוא לא נייד. מידע נוסף

הסרת המאפיין isFallbackAdapter של GPUAdapter

כפי שהודענו קודם, המאפיין isFallbackAdapter של GPUAdapter הוסר. הוא הוחלף במאפיין isFallbackAdapter של GPUAdapterInfo, שהוצג ב-Chrome 136. מידע נוסף על כוונת הסרה

עדכונים של Dawn

הפונקציה wgpuInstanceGetWGSLLanguageFeatures() משמשת לקבלת רשימה של תכונות שפה של WGSL שנתמכות על ידי המופע. בעבר היא החזירה ערך WGPUStatus. היא עודכנה כך שלא תחזיר ערך כי היא לא יכולה להיכשל. ראו בעיה 429178774.

הפונקציה wgpuSurfacePresent() מחזירה עכשיו שגיאת WGPUStatus אם למשטח אין טקסטורה נוכחית. ראו בעיה מספר 425930323

התכונה החדשה wgpu::InstanceFeatureName::MultipleDevicesPerAdapter מאפשרת למתאמים ליצור מספר מכשירים בלי שהם "ייצרכו". ראו בעיה מספר 415825174.

המתג dump_shaders_on_failure במכשיר מאפשר לכם להציג נתונים של הצללות רק אם יש כשל, למטרות ניפוי באגים. הוא חל באופן בלעדי על קצה העורף של D3, אבל יכול להיות שבעתיד הוא יחול גם על קצה עורף אחר. אפשר לעיין בבעיה 429187478.

בוצעו מספר שינויים בעורף של Vulkan כדי לצמצם את התקורה כששולחים מעברים של עיבוד, במיוחד לשיפור הביצועים ב-GPU לנייד. לדוגמה: שמירת VkFramebuffers במטמון.

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

מה חדש ב-WebGPU

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

‫Chrome 149-150

‫Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

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