GPUValidationError

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

GPUValidationError 接口是 WebGPU API 的一部分,它描述了一个应用程序错误,表明某个操作未通过 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

浏览器兼容性

另见