A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/en-US/docs/Web/API/GPUComputePassEncoder/setBindGroup below:

GPUComputePassEncoder: setBindGroup() method - Web APIs

GPUComputePassEncoder: setBindGroup() method

Limited availability

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

The setBindGroup() method of the GPUComputePassEncoder interface sets the GPUBindGroup to use for subsequent compute commands, for a given index.

Syntax
setBindGroup(index, bindGroup)
setBindGroup(index, bindGroup, dynamicOffsets)
setBindGroup(index, bindGroup, dynamicOffsets, dynamicOffsetsStart,
             dynamicOffsetsLength)
Parameters
index

The index to set the bind group at. This matches the n index value of the corresponding @group(n) attribute in the shader code (GPUShaderModule) used in the related pipeline.

bindGroup

The GPUBindGroup to use for subsequent compute commands, or null, in which case any previously-set bind group in the given slot is unset.

dynamicOffsets Optional

A value specifying the offset, in bytes, for each entry in bindGroup with hasDynamicOffset: true set (i.e., in the descriptor of the GPUDevice.createBindGroupLayout() call that created the GPUBindGroupLayout object that the bindGroup is based on). This value can be:

If a Uint32Array value is specified for dynamicOffsets, both of the following parameters are also required:

dynamicOffsetsStart

A number specifying the offset, in array elements, into dynamicOffsetsData, where the dynamic offset data begins.

dynamicOffsetsLength

A number specifying the number of dynamic offset values to be read from in dynamicOffsetsData.

Return value

None (Undefined).

Exceptions

For setBindGroup() calls that use a Uint32Array value for dynamicOffsets, the call will throw with a RangeError DOMException if:

Validation

The following criteria must be met when calling dispatchWorkgroups(), otherwise a GPUValidationError is generated and the GPUComputePassEncoder becomes invalid:

Examples Set bind group

In our basic compute demo, several commands are recorded via a GPUCommandEncoder. Most of these commands originate from the GPUComputePassEncoder created via beginComputePass(). The setBindGroup() call used here is the simplest form, just specifying index and bind group.

const BUFFER_SIZE = 1000;

// …

// Create GPUCommandEncoder to encode commands to issue to the GPU
const commandEncoder = device.createCommandEncoder();

// Initiate render pass
const passEncoder = commandEncoder.beginComputePass();

// Issue commands
passEncoder.setPipeline(computePipeline);
passEncoder.setBindGroup(0, bindGroup);
passEncoder.dispatchWorkgroups(Math.ceil(BUFFER_SIZE / 64));

// End the render pass
passEncoder.end();

// Copy output buffer to staging buffer
commandEncoder.copyBufferToBuffer(
  output,
  0, // Source offset
  stagingBuffer,
  0, // Destination offset
  BUFFER_SIZE,
);

// End frame by passing array of command buffers to command queue for execution
device.queue.submit([commandEncoder.finish()]);

// …
Unset bind group
// Set bind group in slot 0
passEncoder.setBindGroup(0, bindGroup);

// Later, unset bind group in slot 0
passEncoder.setBindGroup(0, null);
Specifications Browser compatibility See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4