Skip to content

TgpuRenderPass

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:189

A render pass recording into a TgpuCommandEncoder. On top of the draw commands, it exposes the state that WebGPU scopes to a render pass.

Call end() when done recording.

readonly [$internal]: RenderPassInternals<GPURenderPassEncoder>

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:190

TgpuRenderCommands.[$internal]


readonly resourceType: "render-pass"

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:191

TgpuRenderCommands.resourceType

beginOcclusionQuery(queryIndex): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:204

number

void


draw(vertexCount, instanceCount?, firstVertex?, firstInstance?): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:129

number

number

number

number

void

TgpuRenderCommands.draw


drawIndexed(indexCount, instanceCount?, firstIndex?, baseVertex?, firstInstance?): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:135

number

number

number

number

number

void

TgpuRenderCommands.drawIndexed


drawIndexedIndirect(indirectBuffer, indirectOffset?): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:163

Draws indexed primitives using parameters read from a buffer. The buffer must contain 5 consecutive 32-bit integer values (indexCount u32, instanceCount u32, firstIndex u32, baseVertex i32, firstInstance u32). To get the correct offset within complex data structures, use d.memoryLayoutOf(...).

Buffer marked with ‘indirect’ usage containing draw parameters or raw GPUBuffer

GPUBuffer | TgpuBuffer<BaseData> & IndirectFlag

PrimitiveOffsetInfo pointing to the first draw parameter. If not provided, starts at offset 0. To obtain safe offsets, use d.memoryLayoutOf(...).

number | PrimitiveOffsetInfo

void

TgpuRenderCommands.drawIndexedIndirect


drawIndirect(indirectBuffer, indirectOffset?): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:150

Draws primitives using parameters read from a buffer. The buffer must contain 4 consecutive u32 values (vertexCount, instanceCount, firstVertex, firstInstance). To get the correct offset within complex data structures, use d.memoryLayoutOf(...).

Buffer marked with ‘indirect’ usage containing draw parameters or raw GPUBuffer

GPUBuffer | TgpuBuffer<BaseData> & IndirectFlag

PrimitiveOffsetInfo pointing to the first draw parameter. If not provided, starts at offset 0. To obtain safe offsets, use d.memoryLayoutOf(...).

number | PrimitiveOffsetInfo

void

TgpuRenderCommands.drawIndirect


end(): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:217

Completes the recording of this render pass

void


endOcclusionQuery(): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:205

void


executeBundles(bundles): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:214

Executes previously recorded GPURenderBundles as part of this pass. As per the WebGPU spec, this resets the raw pass’s pipeline, bind group, vertex/index buffer and immediate data state. The state tracked by this typed pass (including values set via setImmediates) is re-applied on the next draw.

Iterable<GPURenderBundle>

void


setBindGroup(bindGroup): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:91

Associates a bind group with the layout it was created from

TgpuBindGroup

void

TgpuRenderCommands.setBindGroup

setBindGroup<Entries>(bindGroupLayout, bindGroup): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:93

Associates a bind group with the given layout

Entries extends Record<string, TgpuLayoutEntry | null>

TgpuBindGroupLayout<Entries>

GPUBindGroup | TgpuBindGroup<Entries>

void

TgpuRenderCommands.setBindGroup


setBlendConstant(color): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:202

readonly [number, number, number, number] | GPUColor

void


setImmediates<T>(immediate, value): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:124

Provides a value for the given immediate variable, used by subsequent draw calls. The value is captured (copied) at call time; mutating it afterwards has no effect until it is set again. Takes precedence over values held by the pipeline (pipeline.with(immediate, value)) and persists across pipeline switches until set again, like any other pass-level state.

Passing an ArrayBuffer or typed array skips serialization entirely; the bytes are copied verbatim and the caller guarantees they match the schema’s layout.

T extends AnyWgslData

TgpuImmediateVar<T>

ArrayBuffer | ArrayBufferView<ArrayBufferLike> | InferInput<T>

void

TgpuRenderCommands.setImmediates


setIndexBuffer<TData>(buffer, indexFormat, offset?, size?): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:107

Sets the current index buffer

TData extends WgslArray<BaseData> | Disarray<BaseData>

GPUBuffer | TgpuBuffer<TData> & IndexFlag

GPUIndexFormat

number

number

void

TgpuRenderCommands.setIndexBuffer


setPipeline(pipeline): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:88

Sets the current TgpuRenderPipeline for subsequent draw calls

TgpuRenderPipeline

void

TgpuRenderCommands.setPipeline


setScissorRect(x, y, width, height): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:201

number

number

number

number

void


setStencilReference(reference): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:203

number

void


setVertexBuffer<TData>(vertexLayout, buffer, offset?, size?): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:99

Binds a vertex buffer to the given vertex layout

TData extends WgslArray<BaseData> | Disarray<BaseData>

TgpuVertexLayout<TData>

GPUBuffer | TgpuBuffer<TData> & VertexFlag

number

number

void

TgpuRenderCommands.setVertexBuffer


setViewport(x, y, width, height, minDepth, maxDepth): void

Defined in: packages/typegpu/src/core/commandEncoder/renderPass.ts:193

number

number

number

number

number

number

void

© Software Mansion 2026. All trademarks and copyrights belong to their respective owners. Read about our Privacy Policy.