Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. GPUDevice
  4. createComputePipeline()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

GPUDevice: createComputePipeline() 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 insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

DiecreateComputePipeline()-Methode derGPUDevice-Schnittstelle erstellt eineGPUComputePipeline, die den Compute-Shader-Stage steuern kann und in einemGPUComputePassEncoder verwendet werden kann.

Syntax

js
createComputePipeline(descriptor)

Parameter

descriptor

Ein Objekt, das die folgenden Eigenschaften enthält:

compute

Ein Objekt, das den Compute-Shader-Einstiegspunkt der Pipeline beschreibt. Dieses Objekt kann die folgenden Eigenschaften enthalten:

constantsOptional

Eine Sequenz von Aufzeichnungsarten mit der Struktur(id, value), die Überschreibungswerte fürWGSL-Konstanten, die in der Pipeline überschrieben werden können, darstellen. Diese verhalten sich wiegeordnete Maps. In jedem Fall istid ein Schlüssel, der zur Identifizierung oder Auswahl der Aufzeichnung verwendet wird, und dieconstant ist ein enumerierter Wert, der eine WGSL darstellt.

Abhängig davon, welche Konstante Sie überschreiben möchten, kannid die Form der numerischen ID der Konstante annehmen, falls eine angegeben ist, oder anderweitig der Bezeichnername der Konstante.

Ein Code-Snippet, das Überschreibungswerte für mehrere überschreibbare Konstanten bereitstellt, könnte so aussehen:

js
({  // …  constants: {    0: false,    1200: 3.0,    1300: 2.0,    width: 20,    depth: -1,    height: 15,  },});
entryPointOptional

Der Name der Funktion immodule, die diese Stage zur Ausführung ihrer Aufgabe verwenden wird. Die entsprechende Shader-Funktion muss das@compute-Attribut haben, um als dieser Einstiegspunkt erkannt zu werden. SieheEntry Point Declaration für weitere Informationen.

Sie können dieentryPoint-Eigenschaft weglassen, wenn Ihr Shader-Code eine einzelne Funktion enthält, bei der das@compute-Attribut gesetzt ist — der Browser wird diese als den Standard-Einstiegspunkt verwenden. WennentryPoint weggelassen wird und der Browser keinen Standard-Einstiegspunkt bestimmen kann, wird einGPUValidationError erzeugt und die resultierendeGPUComputePipeline ist ungültig.

module

EinGPUShaderModule-Objekt, das denWGSL-Code enthält, den diese programmierbare Stage ausführen wird.

labelOptional

Ein String, der eine Bezeichnung bereitstellt, die verwendet werden kann, um das Objekt zu identifizieren, beispielsweise inGPUError-Meldungen oder Konsolenwarnungen.

layout

Definiert das Layout (Struktur, Zweck und Typ) aller GPU-Ressourcen (Puffer, Texturen usw.), die während der Ausführung der Pipeline verwendet werden. Mögliche Werte sind:

  • EinGPUPipelineLayout-Objekt, das mitGPUDevice.createPipelineLayout() erstellt wurde und es der GPU ermöglicht, im Voraus herauszufinden, wie die Pipeline am effizientesten ausgeführt werden kann.
  • Ein String"auto", der die Pipeline veranlasst, ein implizites Bind-Group-Layout basierend auf den im Shader-Code definierten Bindungen zu generieren. Wenn"auto" verwendet wird, dürfen die generierten Bind-Group-Layouts nur mit der aktuellen Pipeline verwendet werden.

Rückgabewert

EineGPUComputePipeline-Objektinstanz.

Validierung

Die folgenden Kriterien müssen erfüllt sein, wenncreateComputePipeline() aufgerufen wird, andernfalls wird einGPUValidationError generiert und ein ungültigesGPUComputePipeline-Objekt zurückgegeben:

  • Die Workgroup-Speichergröße, die von dem innerhalb dercompute-Eigenschaft referenziertenmodule verwendet wird, ist kleiner oder gleich dermaxComputeWorkgroupStorageSize-Grenze desGPUDevice.
  • Dasmodule verwendet eine Anzahl von Compute-Aufrufen pro Workgroup, die kleiner oder gleich dermaxComputeInvocationsPerWorkgroup-Grenze desGPUDevice ist.
  • Die Workgroup-Größe desmodule ist kleiner oder gleich der entsprechendenmaxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY odermaxComputeWorkgroupSizeZ-Grenze desGPUDevice.
  • Wenn dieentryPoint-Eigenschaft weggelassen wird, enthält der Shader-Code eine einzelne Compute-Shader-Einstiegspunktfunktion, die der Browser als Standard-Einstiegspunkt verwenden kann.

Beispiele

Hinweis:DieWebGPU-Beispiele enthalten viele weitere Beispiele.

Einfaches Beispiel

Unsereinfaches Compute-Demo zeigt einen Prozess von:

js
// …const bindGroupLayout = device.createBindGroupLayout({  entries: [    {      binding: 0,      visibility: GPUShaderStage.COMPUTE,      buffer: {        type: "storage",      },    },  ],});const computePipeline = device.createComputePipeline({  layout: device.createPipelineLayout({    bindGroupLayouts: [bindGroupLayout],  }),  compute: {    module: shaderModule,    entryPoint: "main",  },});// …

Spezifikationen

Specification
WebGPU
# dom-gpudevice-createcomputepipeline

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp