Co nowego w WebGPU (Chrome 113)

François Beaufort
François Beaufort

Po latach prac zespół Chrome ogłasza, że pierwsza wersja WebGPU jest teraz domyślnie dostępna w Chrome na urządzeniach z ChromeOS, macOS i Windows. Więcej informacji znajdziesz w artykule Chrome ships WebGPU (Chrome udostępnia WebGPU).

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

A to nie wszystko.

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

WebGPU udostępnia interfejs API do tworzenia nieprzezroczystych obiektów „tekstury zewnętrznej” z HTMLVideoElement do importExternalTexture(). Możesz używać tych obiektów do wydajnego próbkowania klatek wideo, potencjalnie bez kopiowania bezpośrednio ze źródłowych danych YUV.

Początkowa specyfikacja WebGPU nie zezwala jednak na tworzenie obiektów GPUExternalTexture z obiektów VideoFrame WebCodecs. Ta funkcja jest ważna w przypadku zaawansowanych aplikacji do przetwarzania wideo, które korzystają już z WebCodecs i chcą zintegrować WebGPU z potokiem przetwarzania wideo. Dyskusja na ten temat toczy się obecnie w wątku gpuweb/gpuweb#1380.

Włączanie funkcji

Ta funkcja nie jest domyślnie włączona w Chrome, ale można ją wypróbować w Chrome 113, włączając ją ręcznie. Możesz ją aktywować lokalnie, włączając flagę „Funkcje deweloperskie WebGPU” na stronie chrome://flags/#enable-webgpu-developer-features.

Aby włączyć tę funkcję dla wszystkich użytkowników aplikacji, obecnie trwa testowanie źródła, które zakończy się w Chrome 118 (8 grudnia 2023 r.). Aby wziąć udział w eksperymencie, zarejestruj się i umieść element meta z tokenem eksperymentu w kodzie HTML lub nagłówku HTTP. Więcej informacji znajdziesz w poście Pierwsze kroki z testami origin.

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.

Wypróbuj eksperymentalny przykład przesyłania filmów za pomocą WebCodecs.

Nowości w WebGPU

Lista wszystkich tematów omówionych w serii Co nowego w WebGPU.

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