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

View in English Always switch to English

GPUShaderModule: Methode getCompilationInfo()

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more support for this feature? Tell us why.

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.

Die getCompilationInfo()-Methode der GPUShaderModule-Schnittstelle gibt ein Promise zurück, das mit einem GPUCompilationInfo-Objekt erfüllt wird, welches Nachrichten enthält, die während der Kompilierung des GPUShaderModule generiert wurden.

Syntax

js
getCompilationInfo()

Parameter

Keine.

Rückgabewert

Ein Promise, das mit einem GPUCompilationInfo-Objekt erfüllt wird.

GPUCompilationInfo enthält eine messages-Eigenschaft, die ein Array von GPUCompilationMessage-Objekten ist, wobei jedes die Details einer individuellen Kompilierungsnachricht enthält.

Beispiele

Im folgenden Beispiel haben wir absichtlich eine Klammer aus einer Funktionsdeklaration in unserem Shader-Code 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

Spezifikation
WebGPU
# dom-gpushadermodule-getcompilationinfo

Browser-Kompatibilität

Siehe auch