GPUDevice: createPipelineLayout() Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Die createPipelineLayout() Methode der GPUDevice Schnittstelle erstellt ein GPUPipelineLayout, das die GPUBindGroupLayouts definiert, die von einer Pipeline verwendet werden. Die 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 ihrerseits durch Aufrufe von GPUDevice.createBindGroupLayout() erstellt werden). Jedes entspricht einem @group Attribut im Shader-Code, der in einem zugehörigen Pipeline verwendeten GPUShaderModule enthalten ist.

label Optional

Ein String, der ein Label angibt, das zur Identifizierung des Objekts verwendet werden kann, zum Beispiel in GPUError Nachrichten oder Konsolenwarnungen.

Rückgabewert

Eine Instanz des GPUPipelineLayout Objekts.

Validierung

Die folgenden Kriterien müssen erfüllt sein, wenn createPipelineLayout() aufgerufen wird, andernfalls wird ein GPUValidationError erzeugt 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

BCD tables only load in the browser

Siehe auch