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

François Beaufort
François Beaufort

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

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

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

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

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

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

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

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 },
  ],
});

‫WGSL textureSampleLevel תומך בטקסטורות דו-ממדיות

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

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

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

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

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

עדכונים של Dawn

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

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

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

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

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

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

מה חדש ב-WebGPU

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

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