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'e erişebilirsiniz. Bu, özellikle Vulkan 1.1 veya sonraki sürümleri desteklemeyen Android cihazlar için kullanışlıdır. Aşağıdaki örneğe ve sayı dawn:1545'e bakın.

// 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 hâlâ 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, GPUAdapter requestAdapterInfo() yönteminin çağrılması, adaptör bilgilerini almanın tek yoluydu. 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

WebAssembly yığınlarının doğrudan WebGPU'ya iletilmesini sağlamak için aşağıdaki BufferSource bağımsız değişkenlerinin boyutları artık 2 GB ile sınırlı değildir: setBindGroup() içindeki dynamicOffsetsData, writeBuffer() içindeki kaynak data ve kaynak data Pin writeTexture(). 339049388 numaralı sorun için bu makaleyi inceleyin.

İ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, hatayı tetikleyen komutu içeren iyileştirilmiş mesajı gösterir. 192245 değişikliği konusuna 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östermez. 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 sırada wgpu::Surface::GetPreferredFormat() çağrısı yapıldığında kullanımdan kaldırma uyarısı gösterilir. 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. Bu tür öğelerin her zaman wgpu::TextureUsage::RenderAttachment içermesi beklenir. 301 numaralı sorun konusuna 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

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113