Spec-Zone.ru › Web APIs

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API