GPUSupportedLimits

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Giao diện GPUSupportedLimits của WebGPU API mô tả các giới hạn được hỗ trợ bởi GPUAdapter.

Đối tượng GPUSupportedLimits cho bộ điều hợp hiện tại được truy cập thông qua thuộc tính GPUAdapter.limits.

Cần lưu ý rằng thay vì báo cáo chính xác giới hạn của mỗi GPU, các trình duyệt có thể báo cáo các giá trị bậc khác nhau của các giới hạn để giảm thông tin duy nhất có sẵn cho việc lấy dấu vân tay. Ví dụ, các bậc của một giới hạn nhất định có thể là 2048, 8192 và 32768. Nếu giới hạn thực tế của GPU của bạn là 16384, trình duyệt vẫn sẽ báo cáo 8192.

Vì các trình duyệt khác nhau sẽ xử lý điều này khác nhau và các giá trị bậc có thể thay đổi theo thời gian, rất khó để cung cấp thông tin chính xác về các giá trị giới hạn cần mong đợi — nên kiểm tra kỹ lưỡng.

Thuộc tính phiên bản

Các giới hạn sau được biểu diễn bởi các thuộc tính trong đối tượng GPUSupportedLimits. Xem phần Limits của thông số kỹ thuật để biết mô tả chi tiết về ý nghĩa của các giới hạn.

Tên giới hạn Giá trị mặc định
maxTextureDimension1D 8192
maxTextureDimension2D 8192
maxTextureDimension3D 2048
maxTextureArrayLayers 256
maxBindGroups 4
maxBindingsPerBindGroup 640
maxDynamicUniformBuffersPerPipelineLayout 8
maxDynamicStorageBuffersPerPipelineLayout 4
maxSampledTexturesPerShaderStage 16
maxSamplersPerShaderStage 16
maxStorageBuffersPerShaderStage 8
maxStorageTexturesPerShaderStage 4
maxUniformBuffersPerShaderStage 12
maxUniformBufferBindingSize 65536 bytes
maxStorageBufferBindingSize 134217728 bytes (128 MB)
minUniformBufferOffsetAlignment 256 bytes
minStorageBufferOffsetAlignment 256 bytes
maxVertexBuffers 8
maxBufferSize 268435456 bytes (256 MB)
maxVertexAttributes 16
maxVertexBufferArrayStride 2048 bytes
maxInterStageShaderComponents Deprecated Non-standard (dùng maxInterStageShaderVariables thay thế, xem thông báo ngừng sử dụng) 60
maxInterStageShaderVariables 16
maxColorAttachments 8
maxColorAttachmentBytesPerSample 32
maxComputeWorkgroupStorageSize 16384 bytes
maxComputeInvocationsPerWorkgroup 256
maxComputeWorkgroupSizeX 256
maxComputeWorkgroupSizeY 256
maxComputeWorkgroupSizeZ 64
maxComputeWorkgroupsPerDimension 65535

Ví dụ

Trong đoạn mã sau, chúng ta truy vấn giá trị maxBindGroups từ GPUAdapter.limits để xem nó có bằng hoặc lớn hơn 6 hay không. Ứng dụng ví dụ lý tưởng cần 6 nhóm ràng buộc, vì vậy nếu giá trị trả về >= 6, chúng ta thêm giới hạn tối đa là 6 vào đối tượng requiredLimits. Sau đó chúng ta yêu cầu một thiết bị với yêu cầu giới hạn đó bằng cách sử dụng GPUAdapter.requestDevice():

js
async function init() {
  if (!navigator.gpu) {
    throw Error("WebGPU not supported.");
  }

  const adapter = await navigator.gpu.requestAdapter();
  if (!adapter) {
    throw Error("Couldn't request WebGPU adapter.");
  }

  const requiredLimits = {};

  // App ideally needs 6 bind groups, so we'll try to request what the app needs
  if (adapter.limits.maxBindGroups >= 6) {
    requiredLimits.maxBindGroups = 6;
  }

  const device = await adapter.requestDevice({
    requiredLimits,
  });

  // …
}

Thông số kỹ thuật

Specification
WebGPU
# gpusupportedlimits

Tương thích trình duyệt

Xem thêm