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à nhóm bốn để diễn ra ở cấp nhóm con (thay vì nhóm công việc). Tính năng này cho phép coi chức năng nhóm con là đồng nhất trong nhiều trường hợp hơn, giúp nhà phát triển có chất lượng cuộc sống tốt hơ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 xem là đồng nhất theo nhóm con, chẳng hạn như giá trị subgroup_id được tích hợp gần đây.

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 dùng navigator.gpu.wgslLanguageFeatures. Hãy xem ví dụ sau và ý định vận chuyể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 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.

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

Để khám phá những cách có thể giúp giảm sự xung đột giữa WebGPU và mã ứng dụng, nhóm Chrome đang điều tra việc ánh xạ bộ đệm đồng bộ trong các worker. Trong khuôn khổ 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 worker) hoạt động tương tự như mapAsync().

Tính năng này đang trong giai đoạn 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 công tắc 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ề bình minh

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. Hãy xem vấn đề 465347942.

Các bản phát hành hằng đêm của tệp nhị phân (ngoài Emdawnwebgpu) hiện được tạo trên GitHub và có trong các bản phát hành google/dawn. Đây là dịch vụ được cung cấp trong khả năng tốt nhất có thể và không được Google hoặc nhóm Dawn ký tên hay đả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 Những điểm mới trong 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