WebGPU'daki yenilikler (Chrome 139)

François Beaufort
François Beaufort

Yayınlanma tarihi: 30 Temmuz 2025

BC ve ASTC sıkıştırılmış biçimleri için 3D doku desteği

"texture-compression-bc-sliced-3d" ve "texture-compression-astc-sliced-3d" WebGPU özellikleri, Blok Sıkıştırma (BC) ve Uyarlanabilir Ölçeklenebilir Doku Sıkıştırma (ASTC) biçimlerini kullanarak 3D dokular için destek ekler. Bu sayede, hacimsel doku verileri için BC ve ASTC formatlarının verimli sıkıştırma özelliklerinden yararlanabilir, görsel kalitede önemli bir kayıp olmadan bellek alanı ve bant genişliği gereksinimlerinde önemli ölçüde azalma sağlayabilirsiniz. Bu özellik, özellikle bilimsel görselleştirme, tıbbi görüntüleme ve gelişmiş oluşturma teknikleri gibi alanlarda çok değerlidir.

Aşağıdaki kod snippet'i, bağdaştırıcının BC ve ASTC sıkıştırılmış biçimlerde 3D dokuları destekleyip desteklemediğini kontrol eder ve varsa bu özelliklere sahip bir cihaz ister.

const adapter = await navigator.gpu.requestAdapter();

const requiredFeatures = [];
if (adapter?.features.has("texture-compression-bc-sliced-3d")) {
  requiredFeatures.push(
    "texture-compression-bc",
    "texture-compression-bc-sliced-3d",
  );
}
if (adapter?.features.has("texture-compression-astc-sliced-3d")) {
  requiredFeatures.push(
    "texture-compression-astc",
    "texture-compression-astc-sliced-3d",
  );
}
const device = await adapter?.requestDevice({ requiredFeatures });

// Later on...
if (device.features.has("texture-compression-astc-sliced-3d")) {
  // Create a 3D texture using ASTC compression
} else if (device.features.has("texture-compression-bc-sliced-3d")) {
  // Create a 3D texture using BC compression
} else {
  // Fallback: Create an uncompressed 3D texture
}

Volume Rendering - Texture 3D WebGPU sample (Hacim Oluşturma - Doku 3D WebGPU örneği) başlıklı makaleyi inceleyerek 3D beyin taramalarını keşfedin ve Chrome durumu girişine göz atın.

WebGPU kullanılarak oluşturulan 3D beyin taramaları.
ASTC sıkıştırılmış biçiminde 3B dokudan alınmış bir beyin taraması görüntüsü.

Yeni "core-features-and-limits" özelliği

Yaklaşan WebGPU uyumluluk modu için yeni bir "core-features-and-limits" özelliği kullanıma sunuluyor. Bu özellik, adaptörün veya cihazın WebGPU spesifikasyonunun temel özelliklerini ve sınırlarını desteklediğini gösterir. Şu anda yalnızca "temel" WebGPU sürümü kullanılabilir. Bu nedenle, tüm WebGPU uygulamaları desteklenen özelliklerine "core-features-and-limits"'yı dahil etmelidir.

Gelecekte WebGPU uyumluluk modu kullanıma sunulduğunda, bir adaptör veya cihazın bu özelliğe sahip olmaması, bunun temel bir adaptör ya da cihaz değil, uyumluluk modu adaptörü veya cihazı olduğunu gösterebilir. Bir cihazda etkinleştirildiğinde bu özellik, tüm uyumluluk modu kısıtlamalarını (özellikler ve sınırlar) kaldırır.

WebGPU uyumluluk modunda ayrıntılı açıklama ve kullanım için açıklayıcı ve aşağıdaki bölüme bakın. 418025721 numaralı sorunu inceleyin.

WebGPU uyumluluk modu için kaynak denemesi

WebGPU, modern grafikler için tasarlanmış güçlü bir API'dir. Vulkan, Metal ve Direct3D 12 gibi teknolojilerle uyumludur. Ancak önemli sayıda cihazda bu yeni API'ler desteklenmemektedir. Örneğin, Windows'da Chrome kullanıcılarının% 31'inde Direct3D 11.1 veya sonraki bir sürüm yüklü değil. Android'de Android kullanıcılarının% 15'inde Vulkan 1.1 yüklü değil. Bu kullanıcıların% 10'unda ise Vulkan hiç yüklü değil.

Bu durum, uygulamasının erişimini en üst düzeye çıkarmak isteyen geliştiriciler için zorluk oluşturur. Bu nedenle, genellikle birden fazla uygulama (ör. WebGPU ve WebGL) geliştirmek, temel WebGPU ile daha sınırlı bir kitleyi kabul etmek veya WebGL'ye bağlı kalmak zorunda kalırlar. Bu durumda, WebGPU'nun GPU hesaplama gibi gelişmiş özelliklerinden yararlanamazlar.

WebGPU uyumluluk modunun görsel temsili.
WebGPU uyumluluk modu daha fazla cihazda kullanılabiliyor.

WebGPU uyumluluk modu, WebGPU API'nin biraz kısıtlanmış bir sürümünü sunarak bu soruna çözüm getirir. Bu mod, OpenGL ES 3.1 ve Direct3D11 gibi eski grafik API'lerini çalıştırmak için tasarlanmıştır. Bu sayede, uygulamanızın erişim alanını, temel WebGPU'nun gerektirdiği modern ve açık grafik API'lerini desteklemeyen cihazlara kadar önemli ölçüde genişletir.

Uyumluluk modu, WebGPU'nun bir alt kümesi olduğundan bu modda oluşturulan uygulamalar da geçerli WebGPU "çekirdek" uygulamalarıdır. Bu nedenle, uyumluluk modunu özel olarak desteklemeyen tarayıcılarda bile sorunsuz bir şekilde çalışırlar.

Birçok temel uygulamada, uyumluluk modunu etkinleştirmek requestAdapter() işlevini çağırırken featureLevel: "compatibility" değerini iletmek kadar basittir. Daha karmaşık uygulamaların, modun kısıtlamalarına uymak için küçük ayarlamalar yapması gerekebilir. Generate Mipmap WebGPU örneği bu konuda iyi bir örnektir.

// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({
  featureLevel: "compatibility",
});

const hasCore = adapter?.features.has("core-features-and-limits");
const device = await adapter?.requestDevice({
  requiredFeatures: (hasCore ? ["core-features-and-limits"] : []),
});

if (device?.features.has("core-features-and-limits")) {
  // Compatibility mode restrictions will apply
}

Özelliği etkinleştirme

WebGPU uyumluluk modu, Chrome'da varsayılan olarak etkin değildir ancak işlev açıkça etkinleştirilerek Chrome 139'da denenebilir. chrome://flags/#enable-experimental-web-platform-features adresinde "Experimental Web Platform Features" bayrağını etkinleştirerek bu özelliği yerel olarak etkinleştirebilirsiniz.

Uygulamanızı ziyaret eden herkes için etkinleştirmek üzere deneme süreci devam ediyor ve Chrome 145'te (21 Nisan 2026) sona erecek. Denemeye katılmak için Get started with origin trials (Kaynak denemeleriyle çalışmaya başlama) başlıklı gönderiyi inceleyin.

Dawn güncellemeleri

Durum da alan diğer geri çağırma işlevleriyle daha tutarlı olması için WGPUQueueWorkDoneCallback işlevine message bağımsız değişkeni eklendi. webgpu-headers PR'ye bakın.

emdawnwebgpu, -sSHARED_MEMORY ile bağlandığında webgpu.cpp dosyası da bu işaretle derlenir. Dawn CL 244075 başlıklı makaleyi inceleyin.

Bu özet yalnızca önemli noktalardan bazılarını kapsar. Kapsamlı commit listesine göz atın.

WebGPU'daki yenilikler

WebGPU'daki Yenilikler serisinde ele alınan her şeyin listesi.

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113