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 bu tür öğe görebilirsiniz (ö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'ta Chrome'u --enable-unsafe-webgpu --use-webgpu-adapter=d3d11
komut satırı işaretleriyle çalıştırarak 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 DevTools 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
'te 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 bunları kullanmaktan 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. issue dawn:1736 konusuna bakın.
İ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 numarasını, ayrıca arabelleği de 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, 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 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 derleme başarısız olursa HLSL dökümü yapılı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. 131750 numaralı değişikliği inceleyin.
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