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, açıkça bir uzantı istemeniz gerekmez. Bu liste şu anda boş ancak gelecekte çok sayıda öğe (ör. do-while loops
) eklenmesi bekleniyor. issue dawn:1777 başlıklı makaleyi inceleyin.
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 Chrome'u --enable-unsafe-webgpu --use-webgpu-adapter=d3d11
komut satırı işaretleriyle çalıştırarak bu özelliği yerel olarak deneyebilirsiniz. issue dawn:1705 başlıklı makaleyi inceleyin.
Prize takılıyken varsayılan olarak ayrı GPU'yu kullanma
Çift GPU'lu macOS cihazlarda, requestAdapter()
seçeneği powerPreference
olmadan çağrılırsa kullanıcının cihazı AC gücündeyken ayrı GPU döndürülür. Aksi takdirde, entegre GPU döndürülür. 4499307 numaralı değişikliğe bakın.
Geliştirici deneyimini iyileştirme
Yeni Geliştirici Araçları uyarıları
depth
tuşu GPUExtend3DDict
içinde kullanılıyorsa doğru tuş depthOrArrayLayers
olduğundan Geliştirici Araçları Konsolu'nda uyarı gösterilir. issue chromium:1440900 adresine bakın.
GPUBlendComponent
hem açık hem de varsayılan üyeler içeriyorsa da uyarı gösterilir. dawn:1785 sorununu inceleyin.
Sıfır boyutlu göndermeler ve çizimler geçerli olsa da uyarı, geliştiricileri mümkün olduğunda bunları kullanmaktan kaçınmaya teşvik eder. dawn:1786 numaralı soruna bakın.
Daha iyi hata mesajları
finish()
daha önce çağrıldıysa GPUCommandEncoder
kullanılırken artık daha iyi bir hata mesajı gösteriliyor. dawn:1736 numaralı sorunu inceleyin.
Yok edilen 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 başlıklı makaleyi inceleyin.
depthStencil
doğrulanırken derinlik şablonu durumunun geçersiz kısmı artık hata mesajında belirtiliyor. issue dawn:1735 başlıklı makaleyi inceleyin.
minBindingSize
doğrulama hata mesajı artık doğrulama hatası veren bağlamanın grubunu ve numarasını, arabellekle birlikte bildiriyor. issue dawn:1604 başlıklı makaleyi inceleyin.
GPUBuffer
nesnesindeki 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ği inceleyin ve chromium:1431622 sorununu bildirin.
// 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 iletmenize olanak tanır. Böylece bu etiketler RenderDoc, PIX veya Instruments gibi platforma özgü hata ayıklama araçlarında görülebilir. Bundan sonra, hata ayıklama için etkinleştirdiğinizde macOS'te daha iyi bir hata ayıklama deneyimi sunulacak. issue dawn:1784 başlıklı makaleye bakın.

Derleme başarısız olursa HLSL'yi günlüğe kaydet
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ü oluşturulur. issue dawn:1681 başlıklı makaleyi inceleyin.
Dawn güncellemeleri
Köşe noktası arabelleğini kaldırma
wgpu::RenderPassEncoder
veya wgpu::RenderBundleEncoder
üzerinde SetVertexBuffer()
'ye wgpu::Buffer
yerine nullptr
iletmek, belirli bir yuvada daha önce ayarlanmış bir köşe arabelleğini kaldırmanıza olanak tanır. dawn:1675 numaralı soruna 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 döşeme belleğinde kalmasına olanak tanıyan ekler oluşturabilirsiniz. Bu sayede VRAM trafiği ve dokular için VRAM ayırma işlemi önlenebilir. Bu özellik yalnızca Metal ve Vulkan için desteklenir. 1695 numaralı soruna 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
Yeni DAWN_FETCH_DEPENDENCIES
CMake seçeneği, depot_tools
'ın yüklenmesini gerektirmek 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ğe bakın.
WebGPU'daki yenilikler
WebGPU'daki Yenilikler serisinde ele alınan her şeyin listesi.
Chrome 140
- Cihaz istekleri adaptörü tüketiyor
- Doku görünümünün kullanıldığı yerlerde doku kullanmak için kısa yol
- WGSL textureSampleLevel, 1 boyutlu dokuları destekler
- bgra8unorm salt okunur depolama dokusu kullanımını kullanımdan kaldırma
- GPUAdapter isFallbackAdapter özelliğini kaldırın
- Dawn ile ilgili güncellemeler
Chrome 139
- BC ve ASTC sıkıştırılmış biçimleri için 3D doku desteği
- Yeni "temel özellikler ve sınırlar" özelliği
- WebGPU uyumluluk modu için kaynak denemesi
- Dawn ile ilgili güncellemeler
Chrome 138
- Arabellek bağlama kaynağı olarak kullanma için kısa yol
- Oluşturma sırasında eşlenen arabellekler için boyut şartı değişiklikleri
- Yakın tarihli GPU'lar için mimari raporu
- GPUAdapter isFallbackAdapter özelliğinin desteğini sonlandırma
- Dawn ile ilgili güncellemeler
Chrome 137
- externalTexture bağlama için doku görünümünü kullanma
- Arabellekler, ofset ve boyut belirtilmeden kopyalanıyor
- Atomik işaretçi kullanarak WGSL workgroupUniformLoad
- GPUAdapterInfo powerPreference özelliği
- GPURequestAdapterOptions compatibilityMode özelliğini kaldırma
- Dawn ile ilgili güncellemeler
Chrome 136
- GPUAdapterInfo isFallbackAdapter özelliği
- D3D12'de gölgelendirici derleme süresinde iyileştirmeler
- Kanvas görüntülerini kaydetme ve kopyalama
- Artış uyumluluk modu kısıtlamaları
- Dawn ile ilgili güncellemeler
Chrome 135
- Boş bağlama grubu düzeniyle işlem hattı düzeni oluşturmaya izin ver
- Görüntü alanlarının, oluşturma hedefi sınırlarının ötesine geçmesine izin ver
- Android'de deneysel uyumluluk moduna daha kolay erişim
- maxInterStageShaderComponents sınırını kaldırma
- Dawn ile ilgili güncellemeler
Chrome 134
- Alt gruplarla makine öğrenimi iş yüklerini iyileştirme
- Karıştırılabilir olarak kayan filtrelenebilir doku türleri desteğini kaldırma
- Dawn ile ilgili güncellemeler
Chrome 133
- Ek unorm8x4-bgra ve 1 bileşenli köşe biçimleri
- Bilinmeyen sınırların tanımlanmamış değerle istenmesine izin ver
- WGSL hizalama kurallarındaki değişiklikler
- Silme işlemiyle WGSL performansında artış
- Harici dokular için VideoFrame displaySize'ı kullanma
- copyExternalImageToTexture kullanarak varsayılan olmayan yönlere sahip resimleri işleme
- Geliştirici deneyimini iyileştirme
- featureLevel ile uyumluluk modunu etkinleştirme
- Deneysel alt grup özelliklerinde temizleme
- maxInterStageShaderComponents sınırının desteğini sonlandırma
- Dawn ile ilgili güncellemeler
Chrome 132
- Doku görünümü kullanımı
- 32 bit kayan noktalı doku karıştırma
- GPUDevice adapterInfo özelliği
- Geçersiz biçimdeki tuval bağlamını yapılandırma JavaScript hatası veriyor
- Doku üzerinde filtreleme örnekleyici kısıtlamaları
- Genişletilmiş alt grup denemesi
- Geliştirici deneyimini iyileştirme
- 16 bit normalleştirilmiş doku biçimleri için deneysel destek
- Dawn ile ilgili güncellemeler
Chrome 131
- WGSL'de kırpma mesafeleri
- GPUCanvasContext getConfiguration()
- Nokta ve çizgi temel öğelerinde derinlik önyargısı olmamalıdır
- Alt gruplar için kapsayıcı tarama yerleşik işlevleri
- Çoklu çekme dolaylı desteği (deneysel)
- Shader modülü derleme seçeneği strict math
- GPUAdapter requestAdapterInfo() yöntemini kaldırın
- Dawn ile ilgili güncellemeler
Chrome 130
- Çift kaynaklı karıştırma
- Metal'de gölgelendirici derleme süresinde iyileştirmeler
- GPUAdapter requestAdapterInfo() yönteminin desteğinin sonlandırılması
- Dawn ile ilgili güncellemeler
Chrome 129
Chrome 128
- Alt gruplarla deneme yapma
- Çizgiler ve noktalar için derinlik önyargısı ayarını kullanımdan kaldırma
- preventDefault kullanılıyorsa yakalanmamış hata DevTools uyarısını gizleme
- WGSL, önce örneklemeyi enterpolasyon yapar ve ardından
- Dawn ile ilgili güncellemeler
Chrome 127
- Android'de OpenGL ES için deneysel destek
- GPUAdapter info özelliği
- WebAssembly birlikte çalışabilirlik iyileştirmeleri
- Komut kodlayıcı hatalarında iyileştirme
- Dawn ile ilgili güncellemeler
Chrome 126
- maxTextureArrayLayers sınırını artırma
- Vulkan arka ucu için arabellek yükleme optimizasyonu
- Gölgeleyici derleme süresinde iyileştirmeler
- Gönderilen komut arabellekleri benzersiz olmalıdır
- Dawn ile ilgili güncellemeler
Chrome 125
- Alt gruplar (geliştirme aşamasında olan bir özellik)
- 3D dokunun dilimine göre oluşturma
- Dawn ile ilgili güncellemeler
Chrome 124
- Salt okunur ve okuma-yazma depolama dokuları
- Service worker'lar ve shared worker'lar için destek
- Yeni bağdaştırıcı bilgisi özellikleri
- Hata düzeltmeleri
- Dawn ile ilgili güncellemeler
Chrome 123
- WGSL'de DP4a yerleşik işlevleri desteği
- WGSL'de kısıtlanmamış işaretçi parametreleri
- WGSL'de bileşikleri referanssızlaştırmak için sözdizimi kolaylığı
- Şablon ve derinlik yönleri için ayrı salt okunur durum
- Dawn ile ilgili güncellemeler
Chrome 122
- Uyumluluk moduyla erişimi genişletme (geliştirme aşamasında olan bir özellik)
- maxVertexAttributes sınırını artırma
- Dawn ile ilgili güncellemeler
Chrome 121
- Android'de WebGPU'yu destekleme
- Windows'da gölgelendirici derleme için FXC yerine DXC kullanma
- İşleme ve oluşturma geçişlerindeki zaman damgalı sorgular
- Shader modüllerine varsayılan giriş noktaları
- GPUExternalTexture renk alanı olarak display-p3'ü destekleme
- Bellek yığınları bilgileri
- Dawn ile ilgili güncellemeler
Chrome 120
- WGSL'de 16 bitlik kayan nokta değerleri için destek
- Sınırları zorlayın
- Derinlik-şablon durumundaki değişiklikler
- Adaptör bilgisi güncellemeleri
- Zaman damgası sorgularının nicemleme işlemi
- Bahar temizliği özellikleri
Chrome 119
- Filtrelenebilir 32 bit kayan noktalı dokular
- unorm10-10-10-2 köşe biçimi
- rgb10a2uint doku biçimi
- Dawn ile ilgili güncellemeler
Chrome 118
copyExternalImageToTexture()
içinde HTMLImageElement ve ImageData desteği- Okuma/yazma ve salt okuma depolama dokusu için deneysel destek
- Dawn ile ilgili güncellemeler
Chrome 117
- Köşe arabelleğini ayarlamayı kaldırma
- Bağlama grubunu kaldırma
- Cihaz kaybolduğunda eşzamansız işlem hattı oluşturma işleminden kaynaklanan hataları sessize alma
- SPIR-V gölgelendirici modülü oluşturma güncellemeleri
- Geliştirici deneyimini iyileştirme
- Otomatik olarak oluşturulan düzene sahip işlem hatlarını önbelleğe alma
- Dawn ile ilgili güncellemeler
Chrome 116
- WebCodecs entegrasyonu
- GPUAdapter
requestDevice()
tarafından döndürülen kayıp cihaz importExternalTexture()
aranırsa video oynatmayı sorunsuz tutma- Spesifikasyona uygunluk
- Geliştirici deneyimini iyileştirme
- Dawn ile ilgili güncellemeler
Chrome 115
- Desteklenen WGSL dil uzantıları
- Direct3D 11 için deneysel destek
- AC güçte varsayılan olarak ayrı GPU kullanma
- Geliştirici deneyimini iyileştirme
- Dawn ile ilgili güncellemeler
Chrome 114
- JavaScript'i optimize etme
- Yapılandırılmamış tuvalde getCurrentTexture() işlevi InvalidStateError hatası veriyor
- WGSL güncellemeleri
- Dawn ile ilgili güncellemeler