Yang Baru di WebGPU (Chrome 145)

François Beaufort
François Beaufort

Dipublikasikan: 28 Januari 2026

Ekstensi subgroup_uniformity WGSL

Ekstensi bahasa WGSL subgroup_uniformity mengubah cakupan analisis keseragaman untuk fungsi bawaan subgrup dan quad agar terjadi di tingkat subgrup (bukan grup kerja). Fitur ini memungkinkan fungsi subgrup dianggap seragam dalam lebih banyak kasus, sehingga meningkatkan kualitas hidup developer dan mengurangi kemungkinan menonaktifkan pemeriksaan keseragaman sepenuhnya. Implikasi praktisnya adalah bahwa lebih banyak nilai akan dianggap seragam per subgrup, seperti nilai bawaan subgroup_id yang baru ditambahkan.

Ekstensi bahasa ini dapat dideteksi fiturnya menggunakan navigator.gpu.wgslLanguageFeatures. Lihat contoh berikut dan niat untuk mengirimkan.

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 s<ubgroups;
  
  @gro>up(0) @binding(0) varstorage, read_write non_uniform: i32;

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

Pemetaan buffer sinkron eksperimental di pekerja

Untuk mempelajari potensi cara mengurangi hambatan antara WebGPU dan kode aplikasi, tim Chrome sedang menyelidiki pemetaan buffer sinkron dalam pekerja. Sebagai bagian dari upaya ini, metode mapSync() eksperimental baru untuk GPUBuffer telah dibuat prototipenya. Metode ini, yang terbatas untuk pekerja, berfungsi serupa dengan mapAsync().

Fitur ini bersifat eksperimental, dan masukan Anda penting untuk menentukan apakah fitur ini akan diusulkan untuk standardisasi. Untuk mencobanya, luncurkan Chrome menggunakan tombol --enable-features=WebGPUMapSyncOnWorkers, dan laporkan masukan tentang kegunaan dan dampaknya. Lihat cuplikan berikut untuk memulai.

// 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);
}

Info terbaru Dawn

Fitur wgpu::FeatureName::R8UnormStorage tidak lagi tersedia. API ini telah digantikan oleh wgpu::FeatureName::TextureFormatTier1, yang kini menggantikannya. Lihat masalah 472926167.

Fitur wgpu::FeatureName::Snorm16TextureFormats telah dihapus. Kemampuannya, kecuali Resolve, kini sebagian besar tercakup dalam wgpu::FeatureName::TextureFormatsTier1. Lihat masalah 465347942.

Rilis biner harian (selain Emdawnwebgpu) kini dibangun di GitHub, dan tersedia di rilis google/dawn. Layanan ini disediakan sebagai layanan upaya terbaik dan tidak ditandatangani atau dijamin oleh Google atau tim Dawn.

Dukungan wgpu::ExternalTexture telah ditambahkan ke Emdawnwebgpu. Perhatikan bahwa objek ini hanya dapat diimpor dari kode JavaScript (misalnya, EM_ASM), karena konstruksi di C/C++ tidak memungkinkan karena persyaratan untuk objek JavaScript seperti HTMLVideoElement atau VideoFrame. Lihat masalah 462477379, dan SpotTests.cpp untuk contoh kode.

Ini hanya mencakup beberapa sorotan utama. Lihat daftar commit yang lengkap.

Yang Baru di WebGPU

Daftar semua hal yang telah dibahas dalam seri Yang Baru di WebGPU.

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