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 (yapım aşamasındaki özellik)
Alt gruplar özelliği, SIMD düzeyinde paralellik sağlayarak bir grup içindeki ileti dizilerinin iletişim kurmasını ve toplu matematik işlemleri gerçekleştirmesini sağlar (örneğin, 16 sayının toplamını hesaplama). Bu, iş parçacıkları arasında veri paylaşımının son derece verimli bir biçimini 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 noktaları belirledi ve bu özelliği standartlaştırmak için çalışıyor. Sorularınız varsa teklifi ve yorumları inceleyin.
chrome://flags/#enable-experimental-web-platform-features
adresindeki "Deneysel Web Platformu Özellikleri" işaretinin altında, alt gruplar minimum düzeyde ve standartlaştırılmamış şekilde uygulanmaktadır. Bu sayede geliştiriciler, gerçek hayattaki faydalar henüz WebGPU bağlamında kanıtlanmadığı için bu özelliği deneyip geri bildirim paylaşabilir.
"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 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ı sabit olmalıdır.
Aşağıdaki kod snippet'i, alt grupların potansiyelini ortaya çıkarmak ve üzerinde denemeler yapmak için temel oluşturur.
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 dilimini oluştur
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 131
- WGSL'de mesafeleri kırpma
- GPUCanvasContext getConfiguration()
- Nokta ve çizgi temel öğeleri derinlik sapmasına sahip 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
- Metall'de Shader derleme süresi iyileştirmeleri
- GPUAdapter requestAdapterInfo() desteğinin sonlandırılması
- Dawn güncellemeleri
Chrome 129 sürümü
Chrome 128
- 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, ö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ölgelendirme derleme zamanı iyileştirmeleri
- Gönderilen komut arabellekleri benzersiz olmalıdır
- Gün doğumu 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'deki kısıtlanmamış işaretçi parametreleri
- WGSL'de kompozitleri referans kaldırmak için söz dizimi şekeri
- Şablon ve derinlik özellikleri için ayrı salt okunur durum
- Gün doğumu 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'da gölgelendirici derlemesi için FXC yerine DXC'yi kullanın
- Bilgi işlem ve oluşturma kartlarında 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-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
- Filtrelenebilir 32 bit kayan noktalı dokular
- unorm10-10-10-2 tepe 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
- 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
- Dawn güncellemeleri
Chrome 113
importExternalTexture()
dosyasında WebCodecs VideoFrame kaynağını kullanma