GPUDevice: pushErrorScope() method
The pushErrorScope()
method of the GPUDevice
interface pushes a new GPU error scope onto the device's error scope stack, allowing you to capture errors of a particular type.
Once you are done capturing errors, you can end capture by invoking GPUDevice.popErrorScope()
. This pops the scope from the stack and returns a Promise
that resolves to an object describing the first error captured in the scope, or null
if no errors were captured.
Syntax
Parameters
-
filter
-
An enumerated value that specifies what type of error will be caught in this particular error scope. Possible values are:
-
"internal"
-
The error scope will catch a GPUInternalError
.
-
"out-of-memory"
-
The error scope will catch a GPUOutOfMemoryError
.
-
"validation"
-
The error scope will catch a GPUValidationError
.
Return value
Examples
The following example uses an error scope to capture a suspected validation error, logging it to the console.
device.pushErrorScope("validation");
let sampler = device.createSampler({
maxAnisotropy: 0,
});
device.popErrorScope().then((error) => {
if (error) {
sampler = null;
console.error(`An error occurred while creating sampler: ${error.message}`);
}
});
See WebGPU Error Handling best practices for a lot more examples and information.
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
pushErrorScope |
113Currently supported on ChromeOS, macOS, and Windows only.
|
113Currently supported on ChromeOS, macOS, and Windows only.
|
previewCurrently supported on Linux and Windows only.
|
No |
99Currently supported on ChromeOS, macOS, and Windows only.
|
No |
No |
No |
No |
No |
No |
No |
See also