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

François Beaufort
François Beaufort

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

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

ויש עוד.

שימוש במקור מסוג WebCodecs VideoFrame ב-importExternalTexture()

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

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

הפעלת התכונה

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

כדי להפעיל את התכונה לכל המבקרים באפליקציה, יש כרגע גרסת מקור לניסיון שצפויה להסתיים ב-Chrome 118 (8 בדצמבר 2023). כדי להשתתף בניסיון, צריך להירשם ולכלול רכיב meta עם טוקן של גרסת מקור לניסיון ב-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, אפשר לעיין בדוגמה הניסיונית Video Uploading with WebCodecs.

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