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 GPUBindGroupLayout
s definiert, die von einer Pipeline verwendet werden. Die GPUBindGroup
s, die während der Befehlscodierung mit der Pipeline verwendet werden, müssen kompatible GPUBindGroupLayout
s haben.
Syntax
createPipelineLayout(descriptor)
Parameter
descriptor
-
Ein Objekt, das die folgenden Eigenschaften enthält:
bindGroupLayouts
-
Ein Array von
GPUBindGroupLayout
Objekten (die ihrerseits durch Aufrufe vonGPUDevice.createBindGroupLayout()
erstellt werden). Jedes entspricht einem@group
Attribut im Shader-Code, der in einem zugehörigen Pipeline verwendetenGPUShaderModule
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:
- Die
GPUBindGroupLayout
Objekte inbindGroupLayouts
sind gültig. - Die Anzahl der
GPUBindGroupLayout
Objekte inbindGroupLayouts
ist kleiner als dasmaxBindGroups
Limit desGPUDevice
.
Beispiele
Hinweis: Die WebGPU-Beispiele bieten viele weitere Beispiele.
Mehrere Bind Group Layouts, Bind Group, und Pipeline Layout
Das folgende Snippet:
- Erstellt ein
GPUBindGroupLayout
, das eine Bindung mit einem Puffer, einer Textur und einem Sampler beschreibt. - Erstellt ein
GPUPipelineLayout
basierend auf demGPUBindGroupLayout
.
// ...
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
- Die WebGPU API