Bu seferki WebGPU özelliklerinin sayısı biraz az gibi görünse de yakında bazı önemli gelişmeler olacak. 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 dizisi arası veri paylaşımı için son derece verimli bir yöntemdir.
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 noktaları belirledi ve şu anda bu özelliği standartlaştırmak 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, WGSL kodunuzda bu uzantıyı enable chromium_experimental_subgroups
ile açıkça etkinleştirmeniz gerekir. Bu özelliği etkinleştirdiğinizde aşağıdaki ek özelliklere erişebilirsiniz:
subgroup_invocation_id
: Alt gruptaki ileti dizisinin dizini için yerleşik bir değer.subgroup_size
: Alt grup boyutuna erişim için yerleşik bir değer.subgroupBallot(value):
,value
bu etkin çağrı için doğruysasubgroup_invocation_id
'e 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ı sabit 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 sayede oluşturma işleminin özelliklerini yaygın 2D doku oluşturmanın ötesine taşıyabilirsiniz. Bu ekleme, örneğin doğrudan 3D doku hacimlerine oluşturma yaparak voxel 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 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