Desteklenen WGSL dil uzantıları
GPU
nesnesinin wgslLanguageFeatures
üyesi, desteklenen WGSL dil uzantılarının adlarını listeler. Desteklenen WGSL dil uzantıları otomatik olarak etkinleştirilir. Bu nedenle, bu uzantıları açıkça istemeniz gerekmez. Bu liste şu anda boş olsa da gelecekte çok sayıda eklenebilir (örneğin, do-while loops
). issue dawn:1777 konusuna bakın.
if (navigator.gpu.wgslLanguageFeatures?.has("unknown-feature")) {
// Use unknown-feature in WGSL shader code.
}
Direct3D 11 için deneysel destek
Chromium ekibi, Direct3D 11 için WebGPU desteği eklemek üzere çalışıyor. Artık Windows'da --enable-unsafe-webgpu --use-webgpu-adapter=d3d11
komut satırı işaretleriyle Chrome'u çalıştırarak bu uygulamayı yerel olarak deneyebilirsiniz. issue dawn:1705 konusuna bakın.
AC güç kaynağında varsayılan olarak ayrı GPU alma
Çift GPU'lu macOS cihazlarda, requestAdapter()
powerPreference
seçeneği olmadan çağrılırsa kullanıcının cihazı AC güçteyken ayrık GPU döndürülür. Aksi takdirde entegre GPU döndürülür. 4499307 numaralı değişikliği inceleyin.
Geliştirici deneyimini iyileştirme
Yeni Geliştirici Araçları uyarıları
depth
anahtarı bir GPUExtend3DDict
içinde kullanılıyorsa doğru anahtar depthOrArrayLayers
olduğundan DevTools Konsolu'nda uyarı gösterilir. chromium:1440900 numaralı soruna bakın.
GPUBlendComponent
'de uygunsuz ve varsayılan üyeler varsa da uyarı gösterilir. Issue dawn:1785'i inceleyin.
Sıfır boyutunda dağıtımlar ve çizimler geçerli olsa da geliştiriciler mümkün olduğunda bu tür dağıtımlardan ve çizimlerden kaçınmaya teşvik edilir. issue dawn:1786 konusuna bakın.
Daha iyi hata mesajları
finish()
daha önce çağrılmışsa GPUCommandEncoder
kullanılırken artık iyileştirilmiş bir hata mesajı sağlanmaktadır. Sorun şafak:1736 bölümünü inceleyin.
İmha edilmiş nesnelerle komut arabellekleri gönderilirken submit()
içinde kullanılan komut arabelleklerinin etiketleri artık hata mesajında görünür. issue dawn:1747 konusuna bakın.
Derinlik şablonu durumunun geçersiz kısmı artık depthStencil
doğrulanırken hata mesajında belirtiliyor. issue dawn:1735 konusuna bakın.
minBindingSize
doğrulama hata mesajı, artık doğrulamayı başarısız olan bağlamanın grubunu, numarasını ve arabelleği bildirir. issue dawn:1604 konusuna bakın.
GPUBuffer
nesnesinde mapAsync()
yöntemi tarafından döndürülen hata mesajları, geliştiricilerin hata ayıklama sırasında yardımcı olması için iyileştirildi. Aşağıdaki örneğe ve chromium:1431622 numaralı soruna bakın.
// Create a GPU buffer and map it.
const descriptor = { size: 0, usage: GPUBufferUsage.MAP_READ };
const buffer = device.createBuffer(descriptor);
buffer.mapAsync(GPUMapMode.READ);
// Before it has been mapped, request another mapping.
try {
await buffer.mapAsync(GPUMapMode.READ);
} catch (error) {
// New! Error message tells you mapping is already pending.
console.warn(error.message);
}
macOS hata ayıklama araçlarındaki etiketler
use_user_defined_labels_in_backend
hata ayıklama açma/kapatma düğmesi, nesne etiketlerini arka uca yönlendirmenizi sağlar. Böylece bu etiketler RenderDoc, PIX veya Instruments gibi platforma özgü hata ayıklama araçlarında görülebilir. Artık macOS'te hata ayıklama için etkinleştirdiğinizde daha iyi bir hata ayıklama deneyimi sunulur. issue dawn:1784 adresine bakın
Derleme başarısız olursa HLSL'yi günlüğe kaydetme
dump_shaders
hata ayıklama düğmesi, giriş WGSL gölgelendiricilerini ve çevrilmiş arka uç gölgelendiricilerini kaydetmenize olanak tanır. Bundan sonra, hata ayıklama için etkinleştirdiğinizde, derlemede başarısız olursa HLSL dökümü alınır. issue dawn:1681 konusuna bakın
Şafak güncellemeleri
Köşe noktası tamponunun ayarını kaldırın
wgpu::RenderPassEncoder
veya wgpu::RenderBundleEncoder
'te SetVertexBuffer()
'ye wgpu::Buffer
yerine nullptr
göndermek, belirli bir yuvada daha önce ayarlanmış bir köşe düğümü arabelleğinin ayarını kaldırmanıza olanak tanır. Sorun şafak:1675 bölümünü inceleyin.
// Set vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, nullptr);
Geçici ekler
wgpu::TextureUsage::TransientAttachment
kullanımını ayarlayarak, oluşturma geçişi işlemlerinin karo belleğinde kalmasına olanak tanıyan ekler oluşturabilirsiniz. Böylece VRAM trafiğini ve muhtemelen dokular için VRAM ayırmayı önleyebilirsiniz. Bu özellik yalnızca Metal ve Vulkan için desteklenir. Sorun şafak: 1695 bölümünü inceleyin.
wgpu::TextureDescriptor desc;
desc.format = wgpu::TextureFormat::RGBA8Unorm;
desc.size = {1, 1, 1};
desc.usage = wgpu::TextureUsage::RenderAttachment |
wgpu::TextureUsage::TransientAttachment;
auto transientTexture = device.CreateTexture(&desc);
// You can now create views from the texture to serve as transient
// attachments, e.g. as color attachments in a render pipeline.
depot_tools
olmadan bina
Yeni bir DAWN_FETCH_DEPENDENCIES
CMake seçeneği, depot_tools
'in kendisine bağlı tüm projeler tarafından yüklenmesi yerine DEPS dosyalarını okuyan bir Python komut dosyası kullanarak Dawn bağımlılıklarını getirmenize olanak tanır. 131750 numaralı değişikliği inceleyin.
WebGPU'daki Yenilikler
WebGPU'daki Yenilikler serisinde ele alınan her şeyin listesi.
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 sürümü
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 ilk olarak örneklemeyi
- 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ır
- Vulkan arka ucu 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
- Gün doğumu güncellemeleri
Chrome 123
- WGSL'de DP4a yerleşik işlev 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
- 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ığınları bilgileri
- Dawn güncellemeleri
Chrome 120
- WGSL'de 16 bit kayan nokta değerleri desteği
- 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 köşe noktası biçimi
- rgb10a2uint doku biçimi
- Dawn güncellemeleri
Chrome 118 sürümü
copyExternalImageToTexture()
'te HTMLImageElement ve ImageData desteği- Okunma-yazma ve salt okunur depolama dokusu için deneysel destek
- Gün doğumu güncellemeleri
Chrome 117
- Köşe arabelleğini ayarlama
- Bağlama grubunun ayarını kaldır
- 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 sürümü
- 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ış tuvalde bulunangetCurrentTexture() işlemi InvalidStateError hatası veriyor
- WGSL ile ilgili güncellemeler
- Dawn güncellemeleri