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 });
Bu özellik henüz deneme aşamasında olduğundan, aşağıdaki adımları uygulamanız gerekir:
- 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".
- Android cihazınızda USB Hata Ayıklama'yı etkinleştirin.
- 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
- Mesafeleri WGSL'de kırp
- GPUCanvasContext getConfiguration()
- Nokta ve çizgi primitiflerinde derinlik önyargısı olmamalıdır
- Alt gruplar için kapsayıcı tarama yerleşik işlevleri
- Çoklu çizim için deneysel destek
- Shader modülü derleme seçeneği katı matematik
- GPUAdapter requestAdapterInfo() işlevini kaldırma
- Gün doğumu güncellemeleri
Chrome 130
- İkili kaynak karıştırma
- Metal'de gölgelendirici derleme süresiyle ilgili iyileştirmeler
- GPUAdapter requestAdapterInfo() desteğinin sonlandırılması
- Dawn güncellemeleri
Chrome 129
Chrome 128
- Alt gruplarla deneme yapma
- Çizgiler ve noktalar için derinlik önyargısı ayarının desteği sonlandırıldı
- preventDefault ise yakalanmayan hata DevTools uyarısını gizleme
- WGSL, önce örneklemeyi enterpolasyona tabi tutar ve ardından
- Gün doğumu güncellemeleri
Chrome 127
- Android'de OpenGL ES için deneysel destek
- GPUAdapter bilgi özelliği
- WebAssembly birlikte çalışabilirlik iyileştirmeleri
- Komut kodlayıcı hataları iyileştirildi
- Dawn güncellemeleri
Chrome 126
- maxTextureArrayLayers sınırını artırma
- Vulkan arka uç için arabellek yükleme optimizasyonu
- Gölgelendirici derleme süresiyle ilgili iyileştirmeler
- Gönderilen komut arabellekleri benzersiz olmalıdır
- Dawn güncellemeleri
Chrome 125 sürümü
Chrome 124
- Salt okunur ve okuma/yazma depolama alanı dokuları
- Hizmet çalışanları ve paylaşılan çalışanlar desteği
- Yeni adaptör bilgileri özellikleri
- Hata düzeltmeleri
- Dawn güncellemeleri
Chrome 123
- WGSL'de DP4a yerleşik işlevleri desteği
- WGSL'de sınırsız işaretçi parametreleri
- WGSL'de bileşimlerin referansını kaldırmak için söz dizimi
- Şablon ve derinlik unsurları için ayrı salt okunur durum
- Dawn güncellemeleri
Chrome 122
- Uyumluluk moduyla erişimi genişletme (geliştirme aşamasındaki özellik)
- maxVertexAttributes sınırını artırma
- Dawn güncellemeleri
Chrome 121
- Android'de WebGPU desteği
- Windows'ta gölgelendirici derleme için FXC yerine DXC kullanma
- İşleme ve oluşturma geçişlerinde zaman damgası sorguları
- Gölgelendirici modüllerinin varsayılan giriş noktaları
- GPUExternalTexture renk alanı olarak display-p3 desteği
- Bellek yığınları bilgileri
- Dawn güncellemeleri
Chrome 120
- WGSL'de 16 bitlik kayan nokta değerleri için destek
- Sınırları zorlayın
- Derinlik şablonu durumunda yapılan değişiklikler
- Adaptör bilgileri güncellemeleri
- Zaman damgası sorgularının kesirli sayılara dönüştürülmesi
- Bahar temizliği özellikleri
Chrome 119
- Filtrelenebilir 32 bit kayan noktalı dokular
- unorm10-10-10-2 köşe noktası biçimi
- rgb10a2uint doku biçimi
- Dawn güncellemeleri
Chrome 118
copyExternalImageToTexture()
'te HTMLImageElement ve ImageData desteği- Okuma/yazma ve salt okuma depolama dokusu için deneysel destek
- Gün doğumu güncellemeleri
Chrome 117
- Köşe noktası arabelleğinin ayarını kaldırma
- Bağlama grubunu kaldırma
- Cihaz kaybolduğunda eşzamansız ardışık düzen oluşturma sırasında karşılaşılan hataları susturma
- SPIR-V gölgelendirici modülü oluşturma güncellemeleri
- Geliştirici deneyimini iyileştirme
- Otomatik olarak oluşturulan düzenle ardışık düzenleri önbelleğe alma
- Dawn güncellemeleri
Chrome 116
- WebCodecs entegrasyonu
- Kayıp cihaz, GPUAdapter
requestDevice()
tarafından döndürüldü importExternalTexture()
çağrılırsa video oynatmanın sorunsuz olmasını sağlama- Spesifikasyona uygunluk
- Geliştirici deneyimini iyileştirme
- Gün doğumu güncellemeleri
Chrome 115
- Desteklenen WGSL dil uzantıları
- Direct3D 11 için deneysel destek
- AC gücünde ayrı GPU'yu varsayılan olarak alma
- Geliştirici deneyimini iyileştirme
- Dawn güncellemeleri
Chrome 114
- JavaScript'i optimize etme
- Yapılandırılmamış kanvasta getCurrentTexture() InvalidStateError hatası veriyor
- WGSL ile ilgili güncellemeler
- Gün doğumu güncellemeleri
Chrome 113
importExternalTexture()
dosyasında WebCodecs VideoFrame kaynağını kullanma