WebGPU'daki Yenilikler (Chrome{6/}127)

François Beaufort
François Beaufort

Android'de OpenGL ES için deneysel destek

Artık Android için Chrome'da deneysel WebGPU uyumluluk modunu istediğinizde OpenGL ES arka ucundan GPUAdapter erişebilirsiniz. Bu, özellikle Vulkan 1.1 veya sonraki sürümleri desteklemeyen Android cihazlar için yararlıdır. Aşağıdaki örneği ve sorun şafak:1545 bilgisini inceleyin.

// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({ compatibilityMode: true });
WebGPU rapor sayfası, Android cihazdaki OpenGL ES arka ucundan GPUAdapter bilgilerini gösterir.
webgpureport.org
adresindeki OpenGL ES adaptör bilgileri

Bu özellik henüz deneme aşamasında olduğundan, aşağıdaki adımları uygulamanız gerekir:

  1. Aşağıdaki Chrome işaretlerini etkinleştirin: "Güvenli Olmayan WebGPU Desteği", "WebGPU Geliştirici Özellikleri" ve "Köklendirilmemiş cihazlarda komut satırını etkinleştir".
  2. Android cihazınızda USB Hata Ayıklama'yı etkinleştirin.
  3. Android cihazınızı iş istasyonunuza bağlayın, Vulkan yerine OpenGL ES arka ucunu tercih etmek için adb shell 'echo "_ --use-webgpu-adapter=opengles" > /data/local/tmp/chrome-command-line' komutunu çalıştırın ve Chrome'u yeniden başlatın.

GPUAdapter bilgi özelliği

Bir bağdaştırıcının tanımlayıcı bilgilerini almak için artık GPUAdapter info özelliğini senkronize bir şekilde kullanabilirsiniz. Önceden, adaptör bilgilerini almanın tek yolu, GPUAdapter requestAdapterInfo() yöntemini arayabilmekti. Ancak requestAdapterInfo(), WebGPU spesifikasyonundan kaldırıldı ve web geliştiricilerine gerekli geçişi yapmaları için yeterli süre tanımak amacıyla bu yılın ilerleyen dönemlerinde Chrome'dan da kaldırılacak. Aşağıdaki örneğe, Chrome Durumu'na ve 335383516 numaralı soruna bakın.

const adapter = await navigator.gpu.requestAdapter();
const info = adapter.info;

// During the transition period, you can use the following:
// const info = adapter.info || await adapter.requestAdapterInfo();

console.log(`Vendor: ${info.vendor}`); // "arm"
console.log(`Architecture: ${info.architecture}`); // "valhall"

WebAssembly birlikte çalışabilirlik iyileştirmeleri

Doğrudan WebGPU'ya iletilen WebAssembly yığınlarına uyum sağlamak için şu BufferSource bağımsız değişkenlerinin boyutları artık 2 GB ile sınırlanmamaktadır: setBindGroup() içinde dynamicOffsetsData, writeBuffer() içinde kaynak data ve kaynak data PIN'i writeTexture(). 339049388 numaralı sorun için buraya bakın.

İyileştirilmiş komut kodlayıcı hataları

Komut kodlayıcılardan kaynaklanan bazı doğrulama hatalarında artık daha iyi bağlamsal bilgiler yer alacak. Örneğin, bir oluşturma geçişi hâlâ açıkken bir hesaplama geçişi başlatmaya çalışmak aşağıdaki hataya neden oldu.

Command cannot be recorded while [CommandEncoder (unlabeled)] is locked and [RenderPassEncoder (unlabeled)] is currently open.
    at CheckCurrentEncoder (..\..\third_party\dawn\src\dawn\native\EncodingContext.h:106)

Bu, hatanın nedenini açıklar ancak doğrulama hatasına aslında hangi çağrının neden olduğunu belirtmez. Aşağıdaki hata mesajında, hatayı tetikleyen komutu içeren iyileştirilmiş mesaj gösterilmektedir. Değişiklik 192245 bölümüne bakın.

Command cannot be recorded while [CommandEncoder (unlabeled)] is locked and [RenderPassEncoder (unlabeled)] is currently open.
 - While encoding [CommandEncoder (unlabeled)].BeginComputePass([ComputePassDescriptor]).

Şafak güncellemeleri

webgpu.h C API'si artık Dawn'un wgpu::Surface::GetPreferredFormat() işlevinin C eşdeğeri olan wgpuSurfaceGetPreferredFormat() işlevini göstermemektedir. Bunun yerine, desteklenen biçimlerin listesini almak için wgpu::Surface::GetCapabilities()'ü, ardından bu yüzey için tercih edilen doku biçimini almak için formats[0]'ü kullanın. Bu arada, wgpu::Surface::GetPreferredFormat() çağrısı yapıldığında bir kullanımdan kaldırma uyarısı gönderilir. 290. sayıya bakın.

Bir yüzeyin desteklenen doku kullanımları artık wgpu::Surface::GetCapabilities() çağrısı sırasında wgpu::SurfaceCapabilities::usages aracılığıyla kullanılabilir. Her zaman wgpu::TextureUsage::RenderAttachment içermeleri beklenir. 301 numaralı soruna bakın.

Bu, önemli noktalardan yalnızca bazılarını kapsar. Kapsamlı commit listesine göz atın.

WebGPU'daki Yenilikler

WebGPU'daki Yenilikler serisinde ele alınan tüm konuların listesi.

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125 sürümü

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113