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 });
Bu özellik hâlâ 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, 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
- WGSL'de mesafeleri kırpma
- GPUCanvasContext getConfiguration()
- Nokta ve çizgi primitiflerinde derinlik önyargısı olmamalıdır
- Alt gruplar için dahili kapsayıcı tarama işlevleri
- Çoklu çizim için deneysel destek
- Shader modülü derleme seçeneği katı matematik
- GPUAdapter requestAdapterInfo() yöntemini kaldırın
- Dawn güncellemeleri
Chrome 130
- Çift 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
- Dawn 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
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 özellikleri için ayrı salt okunur durum
- Dawn güncellemeleri
Chrome 122
- Uyumluluk modu ile erişimi genişletin (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ı hakkında bilgi
- Dawn güncellemeleri
Chrome 120
- WGSL'de 16 bitlik kayan nokta değerleri için destek
- Sınırları zorlayın
- Derinlik gölgesi durumundaki 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
- Dawn 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 işlemlerinden kaynaklanan hataları yoksayma
- 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
- Dawn güncellemeleri
Chrome 115
- Desteklenen WGSL dil uzantıları
- Direct3D 11 için deneysel destek
- AC güç kaynağında varsayılan olarak ayrı GPU'yu etkinleştirme
- 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
- Dawn güncellemeleri
Chrome 113
importExternalTexture()
dosyasında WebCodecs VideoFrame kaynağını kullanma