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 vor der Verwendung auf produktiven Webseiten.

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 der GPUDevice-Schnittstelle 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 zugehörigen GPUShaderModule enthalten ist.

label Optional

Ein String, der eine Bezeichnung bereitstellt, die beispielsweise in GPUError-Meldungen oder Konsolenwarnungen verwendet werden kann.

Rückgabewert

Eine Instanz eines GPUPipelineLayout-Objekts.

Validierung

Die folgenden Kriterien müssen beim Aufruf von createPipelineLayout() erfüllt sein, 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

Der folgende Codeausschnitt:

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