Tính năng mới trong WebGPU (Chrome 145)

François Beaufort
François Beaufort

Ngày xuất bản: 28 tháng 1 năm 2026

Tiện ích WGSL subgroup_uniformity

Tiện ích ngôn ngữ WGSL subgroup_uniformity thay đổi phạm vi phân tích tính đồng nhất cho các hàm tích hợp nhóm con và hàm tích hợp tứ giác để diễn ra ở cấp nhóm con (thay vì nhóm công việc). Tính năng này giúp chức năng nhóm con được coi là đồng nhất trong nhiều trường hợp hơn, mang lại chất lượng cuộc sống tốt hơn cho nhà phát triển và ít có khả năng vô hiệu hoá hoàn toàn các quy trình kiểm tra tính đồng nhất. Một hàm ý thực tế là sẽ có nhiều giá trị được coi là đồng nhất theo nhóm con, chẳng hạn như giá trị subgroup_id tích hợp mới được thêm.

Bạn có thể phát hiện tính năng của tiện ích ngôn ngữ này bằng cách sử dụng navigator.gpu.wgslLanguageFeatures. Hãy xem ví dụ sau và ý định phát hành.

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.

Ánh xạ vùng đệm đồng bộ thử nghiệm trong các worker

Để khám phá những cách có thể giúp giảm xung đột giữa WebGPU và mã xử lý ứng dụng, nhóm Chrome đang nghiên cứu việc ánh xạ vùng đệm đồng bộ trong các worker. Trong nỗ lực này, một phương thức mapSync() thử nghiệm mới cho GPUBuffer đã được tạo mẫu. Phương thức này, chỉ dành cho các worker, hoạt động tương tự như mapAsync().

Đây là một tính năng thử nghiệm và ý kiến phản hồi của bạn rất quan trọng để xác định xem tính năng này có được đề xuất tiêu chuẩn hoá hay không. Để dùng thử, hãy chạy Chrome bằng cách sử dụng công tắc --enable-features=WebGPUMapSyncOnWorkers và báo cáo ý kiến phản hồi về tính hữu ích cũng như tác động của tính năng này. Hãy xem đoạn mã sau để bắt đầu.

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

Thông tin cập nhật về Dawn

Tính năng wgpu::FeatureName::R8UnormStorage không còn hoạt động nữa. wgpu::FeatureName::TextureFormatTier1 đã thay thế và hiện thay thế cho. Xem vấn đề 472926167.

Tính năng wgpu::FeatureName::Snorm16TextureFormats đã bị xoá. Các chức năng của lớp này (ngoại trừ Resolve) hiện chủ yếu được bao gồm trong wgpu::FeatureName::TextureFormatsTier1. Xem vấn đề 465347942.

Các bản phát hành nhị phân hằng đêm (ngoài Emdawnwebgpu) hiện được tạo trên GitHub và có trong các bản phát hành google/dawn. Các bản phát hành này được cung cấp dưới dạng dịch vụ nỗ lực hết mình và không được Google hoặc nhóm Dawn ký hoặc đảm bảo.

Đã thêm tính năng hỗ trợ wgpu::ExternalTexture vào Emdawnwebgpu. Xin lưu ý rằng bạn chỉ có thể nhập từ mã JavaScript (ví dụ: EM_ASM), vì không thể tạo trong C/C++ do yêu cầu về một đối tượng JavaScript như HTMLVideoElement hoặc VideoFrame. Hãy xem vấn đề 462477379SpotTests.cpp để tham khảo mã ví dụ.

Đây chỉ là một số điểm nổi bật chính. Xem danh sách đầy đủ các cam kết.

Tính năng mới trong WebGPU

Danh sách mọi nội dung đã được đề cập trong loạt bài Tính năng mới trong WebGPU.

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