Bu seferki WebGPU özelliklerinin sayısı biraz az gibi görünse de önemli gelişmeler yakında kullanıma sunulacak. Gelecekteki sürümlerde gölgelendirici derleme hızı iyileştirmeleri ve WGPUFuture kullanılarak uygulamanın asenkron modelinde yapılan değişiklikler gibi özellikler yer alacak.
Alt gruplar (geliştirilmekte olan özellik)
Alt gruplar özelliği, SIMD düzeyinde paralellik sağlar. Bu sayede, bir gruptaki iş parçacıkları iletişim kurabilir ve toplu matematik işlemleri (ör. 16 sayının toplamını hesaplama) gerçekleştirebilir. Bu, mesaj dizileri arasında son derece verimli bir veri paylaşımı şekli sağlar.
Alt grup işlemleri modern GPU API'leri tarafından desteklenir ancak adlandırma ve uygulama ayrıntıları değişiklik gösterir. Chrome ekibi ortak özellikleri belirledi ve şimdi bu özelliği standart hale getirmek için çalışıyor. Sorularınız varsa teklifi ve yorumları inceleyin.
WebGPU bağlamında gerçek dünyadaki avantajları henüz kanıtlanmadığı için geliştiricilerin denemesi ve geri bildirim paylaşması amacıyla chrome://flags/#enable-experimental-web-platform-features
adresindeki "Deneysel Web Platformu Özellikleri" işaretinin arkasında alt grupların minimum düzeyde ve standartlaştırılmamış bir uygulaması vardır.
"chromium-experimental-subgroups"
özelliği bir GPUAdapter
'da kullanılabilir olduğunda, WGSL'de deneysel alt grup desteği almak ve minSubgroupSize
ile maxSubgroupSize
sınırlarını kontrol etmek için bu özellikte bir GPUDevice
isteyin.
Ayrıca, bu uzantıyı enable chromium_experimental_subgroups
kullanarak WGSL kodunuzda açıkça etkinleştirmeniz gerekir. Bu ayar etkinleştirildiğinde aşağıdaki eklemelere erişebilirsiniz:
subgroup_invocation_id
: Alt gruptaki ileti dizisinin dizini için yerleşik bir değerdir.subgroup_size
: Alt grup boyutu erişimi için yerleşik bir değerdir.subgroupBallot(value):
,value
etkin çağrı için doğruysasubgroup_invocation_id
'a karşılık gelen biti 1, aksi takdirde 0 olan bir bit alanı kümesi döndürür.subgroupBroadcast(value, id)
: Alt gruptaki tüm çağrılaraid
ile eşleşensubgroup_invocation_id
içeren çağrıdanvalue
'ü yayınlar. Not:id
, derleme zamanı sabiti olmalıdır.
Aşağıdaki kod snippet'i, alt grupların potansiyelini keşfetmek ve denemeler yapmak için bir temel sağlar.
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("chromium-experimental-subgroups")) {
throw new Error("Experimental subgroups support is not available");
}
// Explicitly request experimental subgroups support.
const device = await adapter.requestDevice({
requiredFeatures: ["chromium-experimental-subgroups"],
});
const shaderModule = device.createShaderModule({ code: `
enable chromium_experimental_subgroups;
@compute @workgroup_size(64) fn main(
@builtin(global_invocation_id) global_id : vec3u,
@builtin(subgroup_size) sg_size : u32,
@builtin(subgroup_invocation_id) sg_id : u32) {
// TODO: Use subgroupBallot() and subgroupBroadcast().
}`,
});
3D doku diliminde oluşturma
Artık GPURenderPassColorAttachment
içindeki yeni depthSlice
üyesiyle, oluşturma geçişlerinde doğrudan 3D dokuların dilimlerine oluşturma işlemi uygulayabilir ve bu özelliğin yeteneklerini yaygın 2D doku oluşturmanın ötesine taşıyabilirsiniz. Bu ekleme, örneğin doğrudan 3D doku hacimlerine oluşturma işlemi uygulayarak voksel tabanlı sahneler ve efektler oluşturmanıza olanak tanır. issue dawn:1020 konusuna bakın.
Şafak güncellemeleri
Kapsamlı commit listesine göz atın.
WebGPU'daki Yenilikler
WebGPU'daki Yenilikler serisinde ele alınan her şeyin listesi.
Chrome 130
- Çift kaynak karıştırma
- Metall'de Shader derleme süresi iyileştirmeleri
- GPUAdapter requestAdapterInfo() işlevinin kullanımdan kaldırılması
- Dawn güncellemeleri
Chrome 129
Chrome 128 sürümü
- Alt gruplarla deneme yapma
- Çizgiler ve noktalar için derinlik önyargısı ayarlama özelliğini kullanımdan kaldırma
- preventDefault ise yakalanmayan hata DevTools uyarısını gizleme
- WGSL ilk olarak örneklemeyi
- Dawn güncellemeleri
Chrome 127 sürümü
- 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 dokuları
- Service Worker'lar ve paylaşılan çalışan desteği
- Yeni adaptör bilgileri özellikleri
- Hata düzeltmeleri
- Gün doğumu güncellemeleri
Chrome 123
- WGSL'de DP4a yerleşik işlevleri desteği
- WGSL'deki kısıtlanmamış 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
- Gün doğumu 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ığını bilgileri
- Gün doğumu güncellemeleri
Chrome 120
- WGSL'de 16 bitlik kayan nokta değerleri için destek
- Sınırları zorlayın
- Derinlik-gölge durumuyla ilgili 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 sürümü
- 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 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
- Gün doğumu 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ücünde ayrı GPU'yu varsayılan olarak alma
- Geliştirici deneyimini iyileştirme
- Gün doğumu 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