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/GPURenderBundleEncoder/setBindGroup below:

GPURenderBundleEncoder: setBindGroup() method - Web APIs

GPURenderBundleEncoder: 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 GPURenderBundleEncoder interface sets the GPUBindGroup to use for subsequent render bundle commands, for a given index.

Note: This method is functionally identical to its equivalent on GPURenderPassEncoder — setBindGroup().

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 render bundle 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 setBindGroup(), otherwise a GPUValidationError is generated and the GPURenderBundleEncoder becomes invalid:

Examples Set bind group
function recordRenderPass(passEncoder) {
  if (settings.dynamicOffsets) {
    passEncoder.setPipeline(dynamicPipeline);
  } else {
    passEncoder.setPipeline(pipeline);
  }
  passEncoder.setVertexBuffer(0, vertexBuffer);
  passEncoder.setBindGroup(0, timeBindGroup);
  const dynamicOffsets = [0];
  for (let i = 0; i < numTriangles; ++i) {
    if (settings.dynamicOffsets) {
      dynamicOffsets[0] = i * alignedUniformBytes;
      passEncoder.setBindGroup(1, dynamicBindGroup, dynamicOffsets);
    } else {
      passEncoder.setBindGroup(1, bindGroups[i]);
    }
    passEncoder.draw(3, 1, 0, 0);
  }
}

The above snippet is taken from the WebGPU Samples Animometer example.

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

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