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. 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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
createPipelineLayout
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.
User must explicitly enable this feature.
Has more compatibility info.

Siehe auch