← 返回首页
GPUShaderModule: Methode getCompilationInfo() - Web-APIs | MDN

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.

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.

In diesem Artikel

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

JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.

Siehe auch