GPURenderPipeline: Methode getBindGroupLayout()

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 getBindGroupLayout()-Methode der GPURenderPipeline-Schnittstelle gibt das GPUBindGroupLayout-Objekt der Pipeline mit dem angegebenen Index zurück (d.h. in der ursprünglichen GPUDevice.createRenderPipeline() oder GPUDevice.createRenderPipelineAsync()-Aufrufpipeline-Layout enthalten).

Wenn die GPURenderPipeline mit layout: "auto" erstellt wurde, ist diese Methode die einzige Möglichkeit, um die von der Pipeline generierten GPUBindGroupLayouts abzurufen.

Syntax

js
getBindGroupLayout(index)

Parameter

index

Eine Zahl, die den Index des zurückzugebenden GPUBindGroupLayout darstellt.

Rückgabewert

Eine Instanz des GPUBindGroupLayout-Objekts.

Validierung

Die folgenden Kriterien müssen erfüllt sein, wenn getBindGroupLayout() aufgerufen wird, andernfalls wird ein GPUValidationError generiert und ein ungültiges GPUBindGroupLayout-Objekt zurückgegeben:

  • index ist kleiner als die Anzahl der im Pipeline-Layout verwendeten GPUBindGroupLayout-Objekte.

Beispiele

Hinweis: Sie können vollständige funktionierende Beispiele mit getBindGroupLayout() in Aktion in den WebGPU-Beispielen sehen.

js
// ...

// Create a render pipeline using layout: "auto" to automatically generate
// appropriate bind group layouts
const fullscreenQuadPipeline = device.createRenderPipeline({
  layout: "auto",
  vertex: {
    module: device.createShaderModule({
      code: fullscreenTexturedQuadWGSL,
    }),
    entryPoint: "vert_main",
  },
  fragment: {
    module: device.createShaderModule({
      code: fullscreenTexturedQuadWGSL,
    }),
    entryPoint: "frag_main",
    targets: [
      {
        format: presentationFormat,
      },
    ],
  },
  primitive: {
    topology: "triangle-list",
  },
});

// ...

// Create a bind group with the auto-generated layout from the render pipeline
const showResultBindGroup = device.createBindGroup({
  layout: fullscreenQuadPipeline.getBindGroupLayout(0),
  entries: [
    {
      binding: 0,
      resource: sampler,
    },
    {
      binding: 1,
      resource: textures[1].createView(),
    },
  ],
});

// ...

Spezifikationen

Specification
WebGPU
# dom-gpupipelinebase-getbindgrouplayout

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