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

js
createPipelineLayout(descriptor)

Parameter

descriptor

Ein Objekt, das die folgenden Eigenschaften enthält:

bindGroupLayouts

Ein Array von GPUBindGroupLayout-Objekten (die wiederum durch Aufrufe von GPUDevice.createBindGroupLayout() erstellt werden). Jedes entspricht einem @group Attribut im Shader-Code, der im GPUShaderModule einer zugehörigen Pipeline verwendet wird.

label Optional

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:

Beispiele

Hinweis: Die WebGPU-Beispiele bieten viele weitere Beispiele.

Mehrere Bind-Group-Layouts, Bind-Group und Pipeline-Layout

Das folgende Snippet:

js
// …

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

Siehe auch