Co nowego w WebGPU (Chrome 113)

François Beaufort
François Beaufort

Po kilku latach prac zespół Chrome informuje, że pierwsza wersja WebGPU jest teraz domyślnie dostępna w Chrome na ChromeOS, macOS i Windows. Aby dowiedzieć się więcej, zapoznaj się z artykułem Chrome udostępnia WebGPU.

Zaczęliśmy też dodawać do MDN kompleksową dokumentację WebGPU.

A to nie wszystko.

Używanie źródła WebCodecs VideoFrame w importExternalTexture()

WebGPU udostępnia interfejs API do tworzenia nieprzezroczystych obiektów „zewnętrznej tekstury” w okresie od HTMLVideoElement do importExternalTexture(). Za pomocą tych obiektów możesz skutecznie próbkować klatki filmu, nawet w formie 0 kopii bezpośrednio ze źródłowych danych o YUV.

Początkowa specyfikacja WebGPU nie pozwala jednak na tworzenie obiektów GPUExternalTexture z obiektów WebCodecs VideoFrame. Ta funkcja jest ważna dla zaawansowanych aplikacji do przetwarzania wideo, które korzystają już z WebCodecs i chcą zintegrować WebGPU w procesie przetwarzania wideo. Obecnie toczy się dyskusja na temat problemu gpuweb/gpuweb#1380.

Włączanie funkcji

Domyślnie ta funkcja jest wyłączona w Chrome, ale możesz ją wypróbować w Chrome 113, jednoznacznie ją włączając. Możesz go aktywować lokalnie, włączając flagę „WebGPU Developer Features” w chrome://flags/#enable-webgpu-developer-features.

Aby umożliwić korzystanie z tej funkcji wszystkim użytkownikom Twojej aplikacji, trwa okres próbny origin, który ma się zakończyć w Chrome 118 (8 grudnia 2023 r.). Aby wziąć udział w testach, zarejestruj się i uwzględnij element meta z tokenem wersji próbnej w źródle w kodzie HTML lub w nagłówku HTTP. Więcej informacji znajdziesz w artykule Pierwsze kroki z testami pochodzenia.

Przykładowy kod

// 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.

Zapoznaj się z przykładem eksperymentalnego przesyłania filmów za pomocą WebCodecs.

Co nowego w WebGPU

Lista wszystkich tematów omawianych w cyklu Co nowego w WebGPU.

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