GPUAdapter: limits 属性
limits
是 GPUAdapter
接口的只读属性,它返回一个 GPUSupportedLimits
对象,描述了适配器支持的限制。
需要注意的是,浏览器可能会报告不同限制的不同层级值,而不是报告每个 GPU 的确切限制,以减少可用于驱动式指纹识别的唯一信息。例如,某个限制的层级值可能是 2048、8192 和 32768。如果你的 GPU 的实际限制是 16384,浏览器仍然会报告 8192。
鉴于不同的浏览器会以不同的方式处理这种情况,而且层级值可能会随着时间的推移而改变,因此很难准确地说明应该期望什么限制值——建议进行全面测试。
值
一个 GPUSupportedLimits
对象实例。
示例
在以下代码中,我们查询 GPUAdapter.limits
的 maxBindGroups
值,以查看它是否等于或大于 6。我们的理论示例应用程序理想情况下需要 6 个绑定组,因此,如果返回值 >= 6,我们向 requiredLimits
对象添加一个最大限制 6,并使用 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,
});
// ...
}
规范
规范 |
---|
WebGPU # dom-gpuadapter-limits |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- The WebGPU API