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

François Beaufort
François Beaufort

אחרי שנים של פיתוח, צוות Chrome מכריז שהמהדורה הראשונה של WebGPU זמינה עכשיו כברירת מחדל ב-Chrome ב-ChromeOS, ב-macOS וב-Windows. למידע נוסף, כדאי לעיין במאמר Chrome שולח את WebGPU.

התחלנו גם להוסיף תיעוד מקיף ל-WebGPU ב-MDN.

ועוד.

שימוש במקור של VideoFrame ב-WebCodec ב-importExternalTexture()

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

עם זאת, המפרט הראשוני של WebGPU לא מאפשר ליצור אובייקטים מסוג GPUExternalTexture מאובייקטים של WebCodec מסוג VideoFrame. היכולת הזו חשובה באפליקציות מתקדמות לעיבוד וידאו, שכבר משתמשות ברכיבי WebCodec ורוצים לשלב את WebGPU בצינור עיבוד הווידאו. הדיון מתבצע כרגע בנושא gpuweb/gpuweb#1380.

הפעלת התכונה

התכונה הזו לא מופעלת כברירת מחדל ב-Chrome, אבל אפשר להתנסות בה ב-Chrome 113 על ידי הפעלה מפורשת של הפונקציונליות. אפשר להפעיל אותו באופן מקומי על ידי הפעלת 'תכונות למפתחים של WebGPU' flag ב-chrome://flags/#enable-webgpu-developer-features.

כדי להפעיל את האפשרות לכל המבקרים באפליקציה, מתבצעת כרגע גרסת מקור לניסיון ומוגדרת להסתיים ב-Chrome 118 (8 בדצמבר 2023). כדי להשתתף בתקופת הניסיון, צריך להירשם ולכלול מטא אלמנט עם אסימון המקור לניסיון בכותרת ה-HTML או ה-HTTP. מידע נוסף זמין בפוסט תחילת העבודה עם גרסאות מקור לניסיון.

קוד לדוגמה

// Access the GPU device.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

// Create VideoFrame from HTMLVideoElement.
const video = document.querySelector("video");
const videoFrame = new VideoFrame(video);

const texture = device.importExternalTexture({ source: videoFrame });
// TODO: Use texture in bind group creation.

כדאי לנסות את הדוגמה הניסיונית העלאת סרטונים באמצעות WebCodecs כדי להפעיל אותה.

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