GPUDevice: метод pushErrorScope()
Ограниченная доступность
Эта функция не является базовой, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная: Это экспериментальная технология
Перед использованием в производстве тщательно проверьте таблицу совместимости браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в рабочих процессах.
Метод pushErrorScope() интерфейса GPUDevice помещает новый контекст ошибок GPU в стек контекстов ошибок устройства, позволяя захватывать ошибки определенного типа.
После завершения захвата ошибок вы можете завершить захват, вызвав GPUDevice.popErrorScope(). Это извлекает контекст из стека и возвращает Promise, который разрешается до объекта, описывающего первую пойманную ошибку в контексте, или null, если ошибки не было поймано.
Синтаксис
pushErrorScope(filter)
Параметры
filter-
Перечисление, определяющее тип ошибки, которая будет поймана в данном контексте. Возможные значения:
"internal"-
Контекст ошибки поймает
GPUInternalError. "out-of-memory"-
Контекст ошибки поймает
GPUOutOfMemoryError. "validation"-
Контекст ошибки поймает
GPUValidationError.
Возвращаемое значение
Ничего (Undefined).
Примеры
В следующем примере используется контекст ошибки для захвата предполагаемой ошибки валидации и ее вывода в консоль.
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 |
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
pushErrorScope |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только на Linux и Windows. |
99В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
См. также
- API WebGPU
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/GPUDevice/pushErrorScope