logo
pub struct RenderBundleEncoder<'a> { /* private fields */ }
Expand description

Encodes a series of GPU operations into a reusable “render bundle”.

It only supports a handful of render commands, but it makes them reusable. It can be created with Device::create_render_bundle_encoder. It can be executed onto a CommandEncoder using RenderPass::execute_bundles.

Executing a RenderBundle is often more efficient than issuing the underlying commands manually.

Corresponds to WebGPU GPURenderBundleEncoder.

Implementations

Finishes recording and returns a RenderBundle that can be executed in other render passes.

Sets the active bind group for a given bind group index. The bind group layout in the active pipeline when any draw() function is called must match the layout of this bind group.

If the bind group have dynamic offsets, provide them in the binding order.

Sets the active render pipeline.

Subsequent draw calls will exhibit the behavior defined by pipeline.

Sets the active index buffer.

Subsequent calls to draw_indexed on this RenderBundleEncoder will use buffer as the source index buffer.

Assign a vertex buffer to a slot.

Subsequent calls to draw and draw_indexed on this RenderBundleEncoder will use buffer as one of the source vertex buffers.

The slot refers to the index of the matching descriptor in VertexState::buffers.

Draws primitives from the active vertex buffer(s).

The active vertex buffers can be set with RenderBundleEncoder::set_vertex_buffer.

Draws indexed primitives using the active index buffer and the active vertex buffers.

The active index buffer can be set with RenderBundleEncoder::set_index_buffer, while the active vertex buffers can be set with RenderBundleEncoder::set_vertex_buffer.

Draws primitives from the active vertex buffer(s) based on the contents of the indirect_buffer.

The active vertex buffers can be set with RenderBundleEncoder::set_vertex_buffer.

The structure expected in indirect_buffer must conform to DrawIndirect.

Draws indexed primitives using the active index buffer and the active vertex buffers, based on the contents of the indirect_buffer.

The active index buffer can be set with RenderBundleEncoder::set_index_buffer, while the active vertex buffers can be set with RenderBundleEncoder::set_vertex_buffer.

The structure expected in indirect_buffer must conform to DrawIndexedIndirect.

Features::PUSH_CONSTANTS must be enabled on the device in order to call these functions.

Set push constant data.

Offset is measured in bytes, but must be a multiple of PUSH_CONSTANT_ALIGNMENT.

Data size must be a multiple of 4 and must have an alignment of 4. For example, with an offset of 4 and an array of [u8; 8], that will write to the range of 4..12.

For each byte in the range of push constant data written, the union of the stages of all push constant ranges that covers that byte must be exactly stages. There’s no good way of explaining this simply, so here are some examples:

For the given ranges:
- 0..4 Vertex
- 4..8 Fragment

You would need to upload this in two set_push_constants calls. First for the Vertex range, second for the Fragment range.

For the given ranges:
- 0..8  Vertex
- 4..12 Fragment

You would need to upload this in three set_push_constants calls. First for the Vertex only range 0..4, second for the Vertex | Fragment range 4..8, third for the Fragment range 8..12.

Trait Implementations

Formats the value using the given formatter. Read more

Sets the active bind group for a given bind group index. The bind group layout in the active pipeline when any draw() function is called must match the layout of this bind group. Read more

Sets the active render pipeline. Read more

Sets the active index buffer. Read more

Assign a vertex buffer to a slot. Read more

Draws primitives from the active vertex buffer(s). Read more

Draws indexed primitives using the active index buffer and the active vertex buffers. Read more

Draws primitives from the active vertex buffer(s) based on the contents of the indirect_buffer. Read more

Draws indexed primitives using the active index buffer and the active vertex buffers, based on the contents of the indirect_buffer. Read more

wgt::Features::PUSH_CONSTANTS must be enabled on the device in order to call this function. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.