WebGPU'daki yenilikler (Chrome 145)

François Beaufort
François Beaufort

Yayınlanma tarihi: 28 Ocak 2026

WGSL subgroup_uniformity uzantısı

WGSL dil uzantısı subgroup_uniformity, alt grup ve dörtlü yerleşik işlevler için tekdüzelik analizinin kapsamını, iş grubu yerine alt grup düzeyinde gerçekleşecek şekilde değiştirir. Bu özellik, alt grup işlevinin daha fazla durumda tekdüze olarak kabul edilmesini sağlayarak geliştiriciler için daha iyi bir yaşam kalitesi ve tekdüzelik kontrollerinin tamamen devre dışı bırakılma olasılığını azaltır. Pratik bir sonuç olarak, yakın zamanda eklenen subgroup_id yerleşik değeri gibi daha fazla değer alt grup tekdüze olarak kabul edilir.

Bu dil uzantısı, navigator.gpu.wgslLanguageFeatures kullanılarak özellik algılama işlemine tabi tutulabilir. Aşağıdaki örneğe ve kargo gönderme amacına bakın.

if (!navigator.gpu.wgslLanguageFeatures.has("subgroup_uniformity")) {
  throw new Error(`WGSL subgroup uniformity is not available`);
}

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroups")) {
  throw new Error("Subgroups support is not available");
}
const device = await adapter.requestDevice({ requiredFeatures: ["subgroups"] });

const shaderModule = device.createShaderModule({ code: `
  enable subgroups;
  
  @group(0) @binding(0) var<storage, read_write> non_uniform: i32;

  fn main() {
    if (non_uniform == 42) {
      _ = subgroupElect();
    }
  }`,
}); // WGSL error: subgroupElect must only be called from subgroup uniform control flow.

Çalışanlarda deneysel senkron arabellek eşleme

Chrome ekibi, WebGPU ile uygulama kodu arasındaki sürtünmeyi azaltmanın olası yollarını araştırmak için çalışanlar içinde senkron arabellek eşlemeyi inceliyor. Bu çabalar kapsamında, GPUBuffer için yeni bir deneysel mapSync() yöntemi prototipi oluşturuldu. Yalnızca çalışanlar tarafından kullanılabilen bu yöntem, mapAsync() ile benzer şekilde çalışır.

Bu özellik deneyseldir ve standartlaştırma için önerilip önerilmeyeceğini belirlemek üzere geri bildirimlerinizi bekliyoruz. Özelliği denemek için Chrome'u --enable-features=WebGPUMapSyncOnWorkers anahtarını kullanarak başlatın ve yararı ile etkisi hakkında geri bildirim gönderin. Başlamak için aşağıdaki snippet'e bakın.

// Create a GPU buffer.
const buffer = device.createBuffer({
  size: 42,
  usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
});

// Map buffer synchronously when possible.
if ("mapSync" in GPUBuffer.prototype) {
  buffer.mapSync(GPUMapMode.READ);
} else {
  // Awaiting allows other code to run, which can cause application logic issues.
  await buffer.mapAsync(GPUMapMode.READ);
}

Dawn ile ilgili güncellemeler

wgpu::FeatureName::R8UnormStorage özelliği artık kullanılamıyor. Bu politika, yerini wgpu::FeatureName::TextureFormatTier1 politikasına bıraktı. 472926167 numaralı soruna bakın.

wgpu::FeatureName::Snorm16TextureFormats özelliği kaldırıldı. Resolve hariç olmak üzere bu uygulamanın özellikleri artık büyük ölçüde wgpu::FeatureName::TextureFormatsTier1'da yer alıyor. 465347942 numaralı sorunu inceleyin.

İkili dosyaların gecelik sürümleri (Emdawnwebgpu'ya ek olarak) artık GitHub'da oluşturuluyor ve google/dawn releases adresinde kullanılabiliyor. Bu sürümler, en iyi hizmeti sunmak için sağlanır ve Google veya Dawn ekibi tarafından imzalanmaz ya da garanti edilmez.

Emdawnwebgpu'ya wgpu::ExternalTexture desteği eklendi. C/C++'da HTMLVideoElement veya VideoFrame gibi bir JavaScript nesnesi gerektiğinden oluşturma mümkün olmadığından yalnızca JavaScript kodundan (ör. EM_ASM) içe aktarılabileceğini unutmayın. Örnek kod için 462477379 numaralı soruna ve SpotTests.cpp dosyasına bakın.

Bu özet yalnızca önemli noktaların bir kısmını kapsar. Kapsamlı commit listesine göz atın.

WebGPU'daki yenilikler

WebGPU'daki Yenilikler serisinde ele alınan tüm konuların listesi.

Chrome 149-150

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

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