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
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:
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:
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
- Die WebGPU API