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 macOS cihazlarda requestAdapter()
, powerPreference
seçeneği olmadan çağrılırsa kullanıcının cihazı AC güçle çalıştığında ayrı 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 konusuna bakın.
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ğrulama işlemi başarısız olan bağlamanın grubunu ve sayısının yanı sıra arabelleği de bildirir. Issue dawn:1604 mesajını inceleyin.
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, RenderDoc, PIX veya Instruments gibi platforma özgü hata ayıklama araçlarında görülebilmeleri için nesne etiketlerini arka uca yönlendirmenize olanak tanır. 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 açma/kapatma düğmesi, giriş WGSL gölgelendiricilerini ve çevrilmiş arka uç gölgelendiricilerini günlüğe kaydetmenize olanak tanır. Bundan sonra, hata ayıklama için etkinleştirdiğinizde derleme 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. issue dawn:1675 konusuna bakın.
// 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. Sayı: 1695'e bakın.
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 inşa etme
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. change 131750'ye bakın.
WebGPU'daki Yenilikler
WebGPU'daki Yenilikler serisinde ele alınan tüm konuların listesi.
Chrome 131
- Mesafeleri WGSL'de kırp
- 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 dolaylı 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üresi iyileştirmeleri
- GPUAdapter requestAdapterInfo() desteğinin sonlandırılması
- Gün doğumu 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 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
- Gün doğumu 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 kompozitleri referans kaldırmak için söz dizimi şekeri
- Şablon ve derinlik özellikleri için ayrı salt okunur durum
- Dawn 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
- Bilgi işlem ve oluşturma kartlarında zaman damgası sorguları
- Gölgelendirici modüllerine varsayılan giriş noktaları
- display-p3'ü GPUExternalTexture renk alanı olarak destekle
- Bellek yığınları 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
- Bağdaştırıcı bilgisi 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
- 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
- GPUAdapter tarafından iade edilen kayıp cihaz
requestDevice()
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ış kanvasta getCurrentTexture() InvalidStateError hatası veriyor
- WGSL ile ilgili güncellemeler
- Dawn güncellemeleri
Chrome 113
importExternalTexture()
dosyasında WebCodecs VideoFrame kaynağını kullanma