GPUValidationError

实验性: 这是一种 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表格

安全上下文: 此功能仅在 安全上下文 (HTTPS) 中可用,在某些或所有 支持的浏览器 中可用。

WebGPU APIGPUValidationError 接口描述了一个应用程序错误,指示操作未通过 WebGPU API 的验证约束。

它表示 GPUDevice.popErrorScopeuncapturederror 事件所引发的几种错误类型之一。

只要向 WebGPU 调用提供无效输入,就会发生验证错误。这些错误是一致的、可预测的,并且只要您的应用程序格式正确,就不应该发生。它们将在您的代码运行的每台设备上以相同的方式发生,因此一旦您修复了开发过程中显示的所有错误,您很可能不需要大部分时间直接观察它们。该规则的一个例外是,如果您使用用户提供的资产、着色器等,在这种情况下,在加载时监视验证错误可能会有所帮助。

注意:我们已尝试提供有用的信息,以帮助您了解为什么在您的 WebGPU 代码中发生了验证错误,并在适当情况下提供“验证”部分,其中列出了为避免验证错误而需要满足的标准。例如,请参阅 GPUDevice.createBindGroup() 验证部分

GPUError GPUValidationError

构造函数

GPUValidationError() 实验性

创建一个新的 GPUValidationError 对象实例。

实例属性

message 属性继承自其父级 GPUError

message 实验性 只读

一个字符串,提供一个可读的消息,解释了错误发生的原因。

示例

以下示例使用错误范围来捕获一个疑似的验证错误,并将其记录到控制台。

js
device.pushErrorScope("validation");

let sampler = device.createSampler({
  maxAnisotropy: 0, // Invalid, maxAnisotropy must be at least 1.
});

device.popErrorScope().then((error) => {
  if (error) {
    // error is a GPUValidationError object instance
    sampler = null;
    console.error(`An error occurred while creating sampler: ${error.message}`);
  }
});

规范

规范
WebGPU
# gpuvalidationerror

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅