GPURenderBundleEncoder extension type
The GPURenderBundleEncoder interface of the WebGPU API is used to
pre-record bundles of commands.
The command bundles are encoded by calling the methods of
GPURenderBundleEncoder; once the desired commands have been encoded, they
are recorded into a GPURenderBundle object instance using the
GPURenderBundleEncoder.finish method. These render bundles can then be
reused across multiple render passes by passing the GPURenderBundle
objects into GPURenderPassEncoder.executeBundles calls.
In effect, this is like a partial render pass — GPURenderBundleEncoders
have all the same functionality available as GPURenderPassEncoders, except
that they can't begin and end occlusion queries, and can't set the scissor
rect, viewport, blend constant, and stencil reference. The GPURenderBundle
will inherit all these values from the GPURenderPassEncoder that executes
it.
Note
Currently set vertex buffers, index buffers, bind groups, and pipeline are all cleared prior to executing a render bundle, and once the render bundle has finished executing.
Reusing pre-recoded commands can significantly improve app performance in situations where JavaScript draw call overhead is a bottleneck. Render bundles are most effective in situations where a batch of objects will be drawn the same way across multiple views or frames, with the only differences being the buffer content being used (such as updated matrix uniforms). A good example is VR rendering. Recording the rendering as a render bundle and then tweaking the view matrix and replaying it for each eye is a more efficient way to issue draw calls for both renderings of the scene.
A GPURenderBundleEncoder object instance is created via the
GPUDevice.createRenderBundleEncoder property.
Note
The methods of GPURenderBundleEncoder are functionally identical to
their equivalents available on GPURenderPassEncoder, except for
GPURenderBundleEncoder.finish, which is similar in purpose to
GPUCommandEncoder.finish.
API documentation sourced from MDN Web Docs.
- on
- Implemented types
- Available extensions
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- isDefinedAndNotNull → bool
-
Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension
no setter - isNull → bool
-
Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension
Whether this value corresponds to JavaScriptnull.no setter - isTruthy → JSBoolean
-
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of!!in JavaScript.thisno setter - isUndefined → bool
-
Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension
Whether this value corresponds to JavaScriptundefined.no setter - isUndefinedOrNull → bool
-
Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension
no setter - label ↔ String
-
The
labelread-only property of the GPURenderBundleEncoder interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.getter/setter pair - not → JSBoolean
-
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of!in JavaScript.thisno setter - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
add(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this+any -
and(
JSAny? any) → JSAny? -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this&&any -
callMethod<
R extends JSAny?> (JSAny method, [JSAny? arg1, JSAny? arg2, JSAny? arg3, JSAny? arg4]) → R -
Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension
Callsmethodon this JSObject with up to four arguments. -
callMethodVarArgs<
R extends JSAny?> (JSAny method, [List< JSAny?> ? arguments]) → R -
Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension
Callsmethodon this JSObject with a variable number ofarguments. -
dartify(
) → Object? -
Available on JSAny?, provided by the JSAnyUtilityExtension extension
Converts a JavaScript JSON-like value to the Dart equivalent if possible. -
delete(
JSAny property) → JSBoolean -
Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension
Deletes the property with keypropertyfrom this JSObject. -
divide(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this/any -
draw(
GPUSize32 vertexCount, [GPUSize32 instanceCount, GPUSize32 firstVertex, GPUSize32 firstInstance]) → void -
The
draw()method of the GPURenderBundleEncoder interface draws primitives based on the vertex buffers provided by GPURenderBundleEncoder.setVertexBuffer. -
drawIndexed(
GPUSize32 indexCount, [GPUSize32 instanceCount, GPUSize32 firstIndex, GPUSignedOffset32 baseVertex, GPUSize32 firstInstance]) → void -
The
drawIndexed()method of the GPURenderBundleEncoder interface draws indexed primitives based on the vertex and index buffers provided by GPURenderBundleEncoder.setVertexBuffer and GPURenderBundleEncoder.setIndexBuffer. -
drawIndexedIndirect(
GPUBuffer indirectBuffer, GPUSize64 indirectOffset) → void -
The
drawIndexedIndirect()method of the GPURenderBundleEncoder interface draws indexed primitives using parameters read from a GPUBuffer. -
drawIndirect(
GPUBuffer indirectBuffer, GPUSize64 indirectOffset) → void -
The
drawIndirect()method of the GPURenderBundleEncoder interface draws primitives using parameters read from a GPUBuffer. -
equals(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this==any -
exponentiate(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this**any -
finish(
[GPURenderBundleDescriptor descriptor]) → GPURenderBundle -
The
finish()method of the GPURenderBundleEncoder interface completes recording of the current render bundle command sequence, returning a GPURenderBundle object that can be passed into a GPURenderPassEncoder.executeBundles call to execute those commands in a specific render pass. -
getProperty<
R extends JSAny?> (JSAny property) → R -
Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension
The value of the property keypropertyof this JSObject. -
greaterThan(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this>any -
greaterThanOrEqualTo(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this>=any -
has(
String property) → bool -
Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension
Shorthand helper for hasProperty to check whether this JSObject contains the property keyproperty, but takes and returns a Dart value. -
hasProperty(
JSAny property) → JSBoolean -
Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension
Whether or not this JSObject contains the property keyproperty. -
insertDebugMarker(
String markerLabel) → void -
The
insertDebugMarker()method of the GPURenderBundleEncoder interface marks a specific point in a series of encoded render bundle pass commands with a label. -
instanceof(
JSFunction constructor) → bool -
Available on JSAny?, provided by the JSAnyUtilityExtension extension
Whether thisJSAny?is aninstanceofconstructor. -
instanceOfString(
String constructorName) → bool -
Available on JSAny?, provided by the JSAnyUtilityExtension extension
Whether thisJSAny?is aninstanceofthe constructor that is defined byconstructorName, which is looked up in the globalContext. -
isA<
T extends JSAny?> () → bool -
Available on JSAny?, provided by the JSAnyUtilityExtension extension
Whether thisJSAny?is an instance of the JavaScript type that is declared byT. -
lessThan(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this<any -
lessThanOrEqualTo(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this<=any -
modulo(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this%any -
multiply(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this*any -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notEquals(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this!=any -
or(
JSAny? any) → JSAny? -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this||any -
popDebugGroup(
) → void -
The
popDebugGroup()method of the GPURenderBundleEncoder interface ends a render bundle debug group, which is begun with a GPURenderBundleEncoder.pushDebugGroup call. -
pushDebugGroup(
String groupLabel) → void -
The
pushDebugGroup()method of the GPURenderBundleEncoder interface begins a render bundle debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a GPURenderBundleEncoder.popDebugGroup method is invoked. -
setBindGroup(
GPUIndex32 index, GPUBindGroup? bindGroup, [JSObject dynamicOffsetsOrDynamicOffsetsData, GPUSize64 dynamicOffsetsDataStart, GPUSize32 dynamicOffsetsDataLength]) → void -
The
setBindGroup()method of the GPURenderBundleEncoder interface sets the GPUBindGroup to use for subsequent render bundle commands, for a given index. -
setIndexBuffer(
GPUBuffer buffer, GPUIndexFormat indexFormat, [GPUSize64 offset, GPUSize64 size]) → void -
The
setIndexBuffer()method of the GPURenderBundleEncoder interface sets the current GPUBuffer that will provide index data for subsequent drawing commands. -
setPipeline(
GPURenderPipeline pipeline) → void -
The
setPipeline()method of the GPURenderBundleEncoder interface sets the GPURenderPipeline to use for subsequent render bundle commands. -
setProperty(
JSAny property, JSAny? value) → void -
Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension
Write thevalueof property keypropertyof this JSObject. -
setVertexBuffer(
GPUIndex32 slot, GPUBuffer? buffer, [GPUSize64 offset, GPUSize64 size]) → void -
The
setVertexBuffer()method of the GPURenderBundleEncoder interface sets or unsets the current GPUBuffer for the given slot that will provide vertex data for subsequent drawing commands. -
strictEquals(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this===any -
strictNotEquals(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this!==any -
subtract(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this-any -
toString(
) → String -
A string representation of this object.
inherited
-
typeofEquals(
String typeString) → bool -
Available on JSAny?, provided by the JSAnyUtilityExtension extension
Whether the result oftypeofon thisJSAny?istypeString. -
unsignedRightShift(
JSAny? any) → JSNumber -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result ofin JavaScript.this>>>any
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator [](
String property) → JSAny? -
Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension
Shorthand helper for getProperty to get the value of the property keypropertyof this JSObject, but takes a Dart value. -
operator []=(
String property, JSAny? value) → void -
Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension
Shorthand helper for setProperty to write thevalueof the property keypropertyof this JSObject, but takes a Dart value.