Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

GPUCompilationInfo

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Das GPUCompilationInfo-Interface der WebGPU API repräsentiert ein Array von GPUCompilationMessage-Objekten, die vom GPU-Shader-Modul-Kompilierer generiert werden, um Probleme mit Shader-Code zu diagnostizieren.

GPUCompilationInfo wird über GPUShaderModule.getCompilationInfo() abgerufen.

Instanz-Eigenschaften

messages Schreibgeschützt

Ein Array von GPUCompilationMessage-Objekten, die jeweils die Details einer einzelnen Shader-Kompilierungsnachricht enthalten. Nachrichten können informativ, Warnungen oder Fehler sein.

Beispiele

Im folgenden Beispiel haben wir absichtlich eine Klammer in einer Funktionsdeklaration unseres Shader-Codes weggelassen:

js
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;
}
`;

Wenn wir das Shader-Modul kompilieren, verwenden wir getCompilationInfo(), um einige Informationen über den resultierenden Fehler zu erhalten:

js
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"
  // …
}

Spezifikationen

Specification
WebGPU
# gpucompilationinfo

Browser-Kompatibilität

Siehe auch