GPUDevice: createPipelineLayout() Methode
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.
Die createPipelineLayout() Methode des GPUDevice-Interfaces erstellt ein GPUPipelineLayout, das die GPUBindGroupLayouts definiert, die von einer Pipeline verwendet werden. GPUBindGroups, die während der Befehlscodierung mit der Pipeline verwendet werden, müssen kompatible GPUBindGroupLayouts haben.
Syntax
createPipelineLayout(descriptor)
Parameter
descriptor-
Ein Objekt, das die folgenden Eigenschaften enthält:
bindGroupLayouts-
Ein Array von
GPUBindGroupLayout-Objekten (die wiederum durch Aufrufe vonGPUDevice.createBindGroupLayout()erstellt werden). Jedes entspricht einem@groupAttribut im Shader-Code, der imGPUShaderModuleeiner zugehörigen Pipeline verwendet wird. labelOptional-
Ein String, der ein Label bereitstellt, das zur Identifizierung des Objekts verwendet werden kann, beispielsweise in
GPUError-Nachrichten oder Konsolenwarnungen.
Rückgabewert
Eine GPUPipelineLayout-Objektinstanz.
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn createPipelineLayout() aufgerufen wird, andernfalls wird ein GPUValidationError generiert und ein ungültiges GPUPipelineLayout-Objekt zurückgegeben:
- Die
GPUBindGroupLayout-Objekte inbindGroupLayoutssind gültig. - Die Anzahl der
GPUBindGroupLayout-Objekte inbindGroupLayoutsist geringer als dasGPUDevicesmaxBindGroups` Limit.
Beispiele
Hinweis: Die WebGPU-Beispiele bieten viele weitere Beispiele.
Mehrere Bind-Group-Layouts, Bind-Group und Pipeline-Layout
Das folgende Snippet:
- Erstellt ein
GPUBindGroupLayout, das eine Bindung mit einem Puffer, einer Textur und einem Sampler beschreibt. - Erstellt ein
GPUPipelineLayoutbasierend auf demGPUBindGroupLayout.
// …
const bindGroupLayout = device.createBindGroupLayout({
entries: [
{
binding: 0,
visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,
buffer: {},
},
{
binding: 1,
visibility: GPUShaderStage.FRAGMENT,
texture: {},
},
{
binding: 2,
visibility: GPUShaderStage.FRAGMENT,
sampler: {},
},
],
});
const pipelineLayout = device.createPipelineLayout({
bindGroupLayouts: [bindGroupLayout],
});
// …
Spezifikationen
| Specification |
|---|
| WebGPU> # dom-gpudevice-createpipelinelayout> |
Browser-Kompatibilität
Loading…
Siehe auch
- Die WebGPU API