WebGPU'daki Yenilikler (Chrome 113)

François Beaufort
François Beaufort

Yıllarca süren geliştirme sürecinin ardından Chrome Ekibi, WebGPU'nun ilk sürümünün ChromeOS, macOS ve Windows'da Chrome'da varsayılan olarak kullanılabildiğini duyurdu. Daha fazla bilgi edinmek için Chrome'da WebGPU başlıklı makaleyi inceleyin.

Ayrıca MDN'ye WebGPU ile ilgili kapsamlı dokümanlar eklemeye başladık.

Dahası da var.

importExternalTexture() uygulamasında WebCodecs VideoFrame kaynağını kullanma

WebGPU, HTMLVideoElement ile importExternalTexture() arasında opak "harici doku" nesneleri oluşturmak için bir API sunar. Bu nesneleri, video karelerini verimli bir şekilde örneklemek için kullanabilirsiniz. Bu işlem, kaynak YUV verilerinden doğrudan 0 kopya olacak şekilde yapılabilir.

Ancak ilk WebGPU spesifikasyonu, WebCodecs VideoFrame nesnelerinden GPUExternalTexture nesnelerinin oluşturulmasına izin vermez. Bu özellik, WebCodecs'i kullanan ve WebGPU'yu video işleme hattına entegre etmek isteyen gelişmiş video işleme uygulamaları için önemlidir. Tartışma şu anda gpuweb/gpuweb#1380 sorununda devam ediyor.

Özelliği etkinleştirme

Bu özellik, Chrome'da varsayılan olarak etkin değildir ancak işlevsellik açıkça etkinleştirilerek Chrome 113'te denenebilir. chrome://flags/#enable-webgpu-developer-features adresinde "WebGPU Developer Features" flag'ini etkinleştirerek bu özelliği yerel olarak etkinleştirebilirsiniz.

Uygulamanızın tüm ziyaretçileri için etkinleştirmek üzere şu anda bir kaynak denemesi yapılmaktadır ve bu denemenin Chrome 118'de (8 Aralık 2023) sona ermesi planlanmaktadır. Denemeye katılmak için kaydolun ve HTML veya HTTP üstbilgisinde deneme jetonunu içeren bir meta öğe ekleyin. Daha fazla bilgi için Get started with origin trials (Kaynak denemelerini kullanmaya başlama) başlıklı yayını inceleyin.

Örnek 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.

Video Uploading with WebCodecs deneysel örneğini inceleyerek bu özelliği deneyebilirsiniz.

WebGPU'daki yenilikler

WebGPU'daki Yenilikler serisinde ele alınan her şeyin listesi.

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