SuperAPI AI 工具集

webgpu-core-limits-features

编程与开发

查看项目

更新于 10-15 22:18

技能介绍

用途:在调用 navigator.gpu.requestAdapter 与 adapter.requestDevice 时,正确协商 WebGPU 设备限制(limits)和可选特性(features),避免因请求适配器不支持的能力而失败。

主要能力:区分限制与特性两条路径。限制类需先读 adapter.limits.<name>,确认适配器可达后再放入 requiredLimits,且不得请求超过适配器的最大值或低于其对齐类限值;特性类需先用 adapter.features.has("name") 检测,再决定是否加入 requiredFeatures。资料给出规范默认限值表与可选特性表,如 maxBufferSize 默认 268435456(256 MiB)、maxBindGroups 默认 4、timestamp-query 与 texture-compression-bc 等属 WebGPU 1.0 基线,shader-f16 自 Chrome 120+,subgroups 自 Chrome 134+。

使用方式:先对 adapter 做 null 检查,否则读取 .features 或 .limits 会抛 TypeError;随后按需过滤特性,如 const requiredFeatures = wanted.filter((f) => adapter.features.has(f));限制方面先比较需要值再请求,例如检查 adapter.limits.maxBufferSize 后传入 requiredLimits;设备创建后一律以 device.limits(协商值)而非 adapter.limits 来分配缓冲区、工作组与绑定组;如需面向 OpenGL ES 3.1 / D3D11 级硬件,可用 requestAdapter({ featureLevel: "compatibility" })。

适用场景:跨浏览器图形与计算应用在弱适配器上的兼容与降级、按需提升单一项限制而非整体放宽、面向旧硬件层的适配。

限制:资料未提供具体平台覆盖率、性能数据或收费信息;有效性依赖各浏览器与适配器的实际能力,特性不存在时应省略并走不依赖该特性的代码路径,不得臆造 GPUFeatureName。更多默认值与枚举见其 references/methods.md、references/examples.md、references/anti-patterns.md。