GPUShaderModule: метод getCompilationInfo()
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.
Экспериментальная: Это экспериментальная технология.
Перед использованием в производстве внимательно проверьте таблицу совместимости браузеров.
Безопасный контекст: Данная функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в Веб-воркерах.
Метод getCompilationInfo() интерфейса GPUShaderModule возвращает Promise, который выполняется с объектом GPUCompilationInfo, содержащим сообщения, сгенерированные во время компиляции GPUShaderModule.
Синтаксис
getCompilationInfo()
Параметры
Нет.
Возвращаемое значение
A Promise, который выполняется с объектом GPUCompilationInfo.
Объект GPUCompilationInfo содержит свойство messages, которое представляет собой массив объектов GPUCompilationMessage, каждый из которых содержит детали отдельного сообщения компиляции.
Примеры
В примере ниже мы намеренно опустили скобку в объявлении функции в нашем коде шейдера:
const shaders = `
struct VertexOut {
@builtin(position) position : vec4f,
@location(0) color : vec4f
}
@vertex
fn vertex_main(@location(0) position: vec4f,
@location(1) color: vec4f -> VertexOut
{
var output : VertexOut;
output.position = position;
output.color = color;
return output;
}
@fragment
fn fragment_main(fragData: VertexOut) -> @location(0) vec4f
{
return fragData.color;
}
`;
При компиляции модуля шейдера мы используем getCompilationInfo() для получения информации об ошибке:
async function init() {
// ...
const shaderModule = device.createShaderModule({
code: shaders,
});
const shaderInfo = await shaderModule.getCompilationInfo();
const firstMessage = shaderInfo.messages[0];
console.log(firstMessage.lineNum); // 9
console.log(firstMessage.message); // "expected ')' for function declaration"
console.log(firstMessage.type); // "error"
// ...
}
Спецификации
| Спецификация |
|---|
| WebGPU # dom-gpushadermodule-getcompilationinfo |
Совместимость браузеров
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
getCompilationInfo |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительная версияВ настоящее время поддерживается только на Linux и Windows. |
99В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительная версия | 121 | Нет | 81 | Нет | 25.0 | 121 |
См. также
- The WebGPU API
© 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/GPUShaderModule/getCompilationInfo