WebGPU'daki (Chrome 122) Yenilikler

François Beaufort
François Beaufort

WebGPU özelliklerinin sayısı bu sefer biraz az gibi görünebilir ancak büyük gelişmeler çok yakında! Sonraki sürümlerde DP4a, salt okunur ve okuma-yazma depolama dokuları, ayrı şablon ve derinlik en-boy oranı kontrolü, 3D doku dilimlerine oluşturma ve gölgelendirici derleme iyileştirmeleri gibi özellikler yer alacak.

Bu arada, Headless Chrome'da WebGPU ve WebGL desteğiyle Web Yapay Zeka modeli testinizi nasıl güçlendireceğinizi ve WebGPU'nun Chrome'da neden devre dışı bırakılabileceğini veya çalışmayabileceğini öğrenin.

Uyumluluk moduyla erişimi genişletme (geliştirme aşamasında olan bir özellik)

WebGPU, modern grafik API'leriyle (Vulkan, Metal ve D3D12) iyi uyum sağlar ancak bazı cihazlarda bu API'ler desteklenmez. Bu durum, özellikle Windows (Chrome kullanıcılarının% 31'inde D3D11.1+ yok), Android (Chrome kullanıcılarının% 23'ünde Vulkan 1.1+ yok) ve ChromeOS (Vulkan kullanımı artıyor) gibi platformlarda WebGPU'nun erişilebilirliğini sınırlar.

Chrome Ekibi, WebGPU'nun biraz kısıtlanmış bir sürümünü sunarak bu sorunu çözmek için WebGPU'da uyumluluk modu üzerinde çalışıyor. Bu sürüm, D3D11 ve OpenGL ES gibi eski API'lerde çalışır. Bu sayede WebGPU'nun potansiyel kullanıcı tabanı genişletilecek.

Uyumluluk modunu kullanan uygulamaların tamamen geçerli WebGPU uygulamaları olmaya devam ettiğini belirtmek önemlidir. Uyumluluk modu desteği olmayan cihazlar sorunsuz bir şekilde temel WebGPU bağdaştırıcısına geçer ve geniş bir kullanılabilirlik sağlar.

WebGPU uyumluluk modunun şeması.
WebGPU uyumluluk modu daha fazla cihazda kullanılabiliyor.

Sorularınız varsa öneriyi ve yorumu inceleyin.

maxVertexAttributes sınırını artırma

GPURenderPipeline oluşturulurken arabelleklerdeki toplam maksimum özellik sayısı varsayılan olarak 16'dır. Desteklendiğinde maxVertexAttributes sınırı kullanılarak artık 30'a kadar istekte bulunulabilir. Aşağıdaki örneği inceleyin ve dawn:2223 sorununu bildirin.

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

if (adapter.limits.maxVertexAttributes < 30) {
  // When the desired limit isn't supported, take action to either fall back to
  // a code path that does not require the higher limit or notify the user that
  // their device does not meet minimum requirements.
}

// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
  requiredLimits: { maxVertexAttributes: 30 },
});

Dawn güncellemeleri

Yalnızca deneysel WGSL özelliklerinin kullanıma sunulmasını sağlamak için "expose_wgsl_experimental_features" adlı yeni bir örnek açma/kapatma düğmesi eklendi. Böylece, "allow_unsafe_apis" açma/kapatma düğmesini etkinleştirmeye gerek kalmadan güvenli deneysel WGSL özellikleri kullanılabilir. issue dawn:2260 başlıklı makaleyi inceleyin.

Node.js için Dawn bağlamalarındaki son iyileştirmeler şunlardır:

  • GPUSupportedFeatures::getSize() eklendi.
  • GPUAdapter eskime uygulandı.
  • GPUInternalError artık cihazlar için düzgün şekilde raporlanıyor.
  • Özellikler artık numaralandırılabilir.

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

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