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 — GPURenderBundleEncoder
s
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.this
no 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
label
read-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.this
no 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 of
in JavaScript.this
+any
-
and(
JSAny? any) → JSAny? -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in 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
Callsmethod
on 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
Callsmethod
on 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 keyproperty
from this JSObject. -
divide(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in 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 of
in JavaScript.this
==any
-
exponentiate(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in 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 keyproperty
of this JSObject. -
greaterThan(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in JavaScript.this
>any
-
greaterThanOrEqualTo(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in 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 aninstanceof
constructor
. -
instanceOfString(
String constructorName) → bool -
Available on JSAny?, provided by the JSAnyUtilityExtension extension
Whether thisJSAny?
is aninstanceof
the 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 of
in JavaScript.this
<any
-
lessThanOrEqualTo(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in JavaScript.this
<=any
-
modulo(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in JavaScript.this
%any
-
multiply(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in 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 of
in JavaScript.this
!=any
-
or(
JSAny? any) → JSAny? -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in 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 thevalue
of property keyproperty
of 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 of
in JavaScript.this
===any
-
strictNotEquals(
JSAny? any) → JSBoolean -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in JavaScript.this
!==any
-
subtract(
JSAny? any) → JSAny -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in 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 oftypeof
on thisJSAny?
istypeString
. -
unsignedRightShift(
JSAny? any) → JSNumber -
Available on JSAny?, provided by the JSAnyOperatorExtension extension
The result of
in 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 keyproperty
of 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 thevalue
of the property keyproperty
of this JSObject, but takes a Dart value.