GPUDevice: pushErrorScope() 方法

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

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

pushErrorScope() 方法是 GPUDevice 接口的方法,它将新的 GPU 错误范围推入设备的错误范围堆栈,允许你捕获特定类型的错误。

完成错误捕获后,你可以通过调用 GPUDevice.popErrorScope() 结束捕获。这会将范围从堆栈中弹出,并返回一个 Promise,该 Promise 解析为一个对象,描述在范围内捕获的第一个错误,如果未捕获任何错误,则解析为 null

语法

js
pushErrorScope(filter)

参数

filter

一个枚举值,指定了将在此特定错误范围内捕获的错误类型。可能的取值是

"internal"

错误范围将捕获一个 GPUInternalError

"out-of-memory"

错误范围将捕获一个 GPUOutOfMemoryError

"validation"

错误范围将捕获一个 GPUValidationError

返回值

无 (Undefined).

示例

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

js
device.pushErrorScope("validation");

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

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

查看 WebGPU 错误处理最佳实践,以获取更多示例和信息。

规范

规范
WebGPU
# dom-gpudevice-pusherrorscope

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅