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 tek tip olarak kabul edilmesini sağlayarak geliştiriciler için daha iyi bir yaşam kalitesi sunar ve tek tip denetimlerinin tamamen devre dışı bırakılma olasılığını azaltır. Pratik bir sonucu olarak, daha fazla değer alt grup açısından tekdüze olarak kabul edilir. Örneğin, kısa süre önce eklenen subgroup_id yerleşik değeri.

Bu dil uzantısı, navigator.gpu.wgslLanguageFeatures kullanılarak özellik algılama işlemine tabi tutulabilir. Aşağıdaki örneğe ve intent to ship'e (gönderme amacı) 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 eşzamanlı 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 çabanın bir parçası olarak, mapSync() için yeni bir deneysel GPUBuffer yöntemi prototiplendi. 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 özellik, yerini wgpu::FeatureName::TextureFormatTier1'a bıraktı. 472926167 numaralı sorunu inceleyin.

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

İkili dosyaların (Emdawnwebgpu'ya ek olarak) gece sürümleri artık GitHub'da oluşturuluyor ve google/dawn releases'de kullanılabiliyor. Bu hizmet, en iyi çaba hizmeti olarak 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, 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 tüm konuların listesi.

Chrome 155-156

Chrome 153-154

Chrome 151-152

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