Class: GPUContextInstance
Defined in: src/gfx/renderJob/GPUContext.ts:18
Per-Context3D GPU command/pipeline state. Owned by exactly one Context3D via Context3D.gpuContext. Multi-engine isolation: no mutable state is shared across engines. Access via ctx.gpuContext.foo().
Constructors
Constructor
new GPUContextInstance(
ctx):GPUContextInstance
Defined in: src/gfx/renderJob/GPUContext.ts:45
Parameters
ctx
Returns
GPUContextInstance
Properties
ctx
readonlyctx:Context3D
Defined in: src/gfx/renderJob/GPUContext.ts:20
The Context3D (one engine) this instance is bound to.
lastGeometry
lastGeometry:
GeometryBase=null
Defined in: src/gfx/renderJob/GPUContext.ts:23
Last geometry bound by bindGeometryBuffer; used to skip redundant vertex/index buffer rebinds.
lastPipeline
lastPipeline:
GPURenderPipeline=null
Defined in: src/gfx/renderJob/GPUContext.ts:25
Last render pipeline set on the encoder; used to skip redundant setPipeline calls.
lastShader
lastShader:
RenderShaderPass=null
Defined in: src/gfx/renderJob/GPUContext.ts:27
Last shader pass bound by bindPipeline; used to detect material switches.
drawCount
drawCount:
number=0
Defined in: src/gfx/renderJob/GPUContext.ts:29
Number of draw calls submitted since the last reset (profiling counter).
renderPassCount
renderPassCount:
number=0
Defined in: src/gfx/renderJob/GPUContext.ts:31
Number of render passes begun since the last reset (profiling counter).
geometryCount
geometryCount:
number=0
Defined in: src/gfx/renderJob/GPUContext.ts:33
Number of geometries processed since the last reset (profiling counter).
pipelineCount
pipelineCount:
number=0
Defined in: src/gfx/renderJob/GPUContext.ts:35
Number of pipelines created since the last reset (profiling counter).
matrixCount
matrixCount:
number=0
Defined in: src/gfx/renderJob/GPUContext.ts:37
Number of matrix uploads since the last reset (profiling counter).
lastRenderPassState
lastRenderPassState:
RendererPassState=null
Defined in: src/gfx/renderJob/GPUContext.ts:39
Render-pass state of the most recently begun render pass.
LastCommand
LastCommand:
GPUCommandEncoder=null
Defined in: src/gfx/renderJob/GPUContext.ts:41
Command encoder currently open via beginCommandEncoder, or null.
LastCommandDevice
LastCommandDevice:
GPUDevice=null
Defined in: src/gfx/renderJob/GPUContext.ts:43
Device that owns LastCommand; used to submit on the matching queue.
Methods
bindPipeline()
bindPipeline(
encoder,renderShader):boolean
Defined in: src/gfx/renderJob/GPUContext.ts:56
Bind a shader pass's pipeline and bind groups onto the encoder. Skips the work and returns false when renderShader matches the last bound shader; otherwise binds and returns true. Re-issues the stencil reference on every material switch since it is render-pass (not pipeline) state.
Parameters
encoder
GPURenderPassEncoder | GPURenderBundleEncoder
renderShader
Returns
boolean
bindCamera()
bindCamera(
encoder,camera):void
Defined in: src/gfx/renderJob/GPUContext.ts:90
Bind the camera's global bind group at slot 0.
Parameters
encoder
GPURenderPassEncoder | GPURenderBundleEncoder
camera
Returns
void
bindGeometryBuffer()
bindGeometryBuffer(
encoder,geometry):void
Defined in: src/gfx/renderJob/GPUContext.ts:100
Bind a geometry's index and vertex buffers onto the encoder. Skips the rebind when geometry matches the last bound geometry. Lazily binds each GPU buffer to this context on first use.
Parameters
encoder
GPURenderPassEncoder | GPURenderBundleEncoder
geometry
Returns
void
cleanCache()
cleanCache():
void
Defined in: src/gfx/renderJob/GPUContext.ts:121
Reset the cached geometry/pipeline/shader so the next bind always issues.
Returns
void
createPipeline()
createPipeline(
gpuRenderPipeline):GPURenderPipeline
Defined in: src/gfx/renderJob/GPUContext.ts:128
Create a render pipeline on this context's device.
Parameters
gpuRenderPipeline
GPURenderPipelineDescriptor
Returns
GPURenderPipeline
beginCommandEncoder()
beginCommandEncoder():
GPUCommandEncoder
Defined in: src/gfx/renderJob/GPUContext.ts:137
Open a new command encoder. Submits any previously open encoder first, so only one encoder is in flight at a time per context.
Returns
GPUCommandEncoder
endCommandEncoder()
endCommandEncoder(
command):void
Defined in: src/gfx/renderJob/GPUContext.ts:148
Finish and submit command if it is the currently open encoder.
Parameters
command
GPUCommandEncoder
Returns
void
recordBundleEncoder()
recordBundleEncoder(
des):GPURenderBundleEncoder
Defined in: src/gfx/renderJob/GPUContext.ts:158
Create a render bundle encoder on this context's device.
Parameters
des
GPURenderBundleEncoderDescriptor
Returns
GPURenderBundleEncoder
beginRenderPass()
beginRenderPass(
command,renderPassState):GPURenderPassEncoder
Defined in: src/gfx/renderJob/GPUContext.ts:167
Begin a render pass from renderPassState. Resolves the attachment views (depth, color RTs, MSAA side-bands + resolve targets, or the swapchain present view when no RTs are set) before opening the pass.
Parameters
command
GPUCommandEncoder
renderPassState
RendererPassState
Returns
GPURenderPassEncoder
drawIndexedIndirect()
drawIndexedIndirect(
encoder,indirectBuffer,indirectOffset):void
Defined in: src/gfx/renderJob/GPUContext.ts:255
Indirect indexed draw — the draw call counts (indexCount, instanceCount, firstIndex, baseVertex, firstInstance) come from a GPU buffer at the given offset. Companion of drawIndexed; used by GPU-driven culling so the visibility decision and the draw submission both live on the GPU.
The indirect-first-instance adapter feature must be enabled if the indirect buffer's firstInstance field is non-zero (Orillusion requests it in Context3D init).
Parameters
encoder
GPURenderPassEncoder
indirectBuffer
GPUBuffer
indirectOffset
number
Returns
void
drawIndexed()
drawIndexed(
encoder,indexCount,instanceCount?,firstIndex?,baseVertex?,firstInstance?):void
Defined in: src/gfx/renderJob/GPUContext.ts:265
Indexed draw with CPU-provided counts. No-ops when indexCount or instanceCount is zero — WebGPU flags empty indexed draws as unusual, and dynamic geometry starts with empty buffers.
Parameters
encoder
GPURenderPassEncoder
indexCount
number
instanceCount?
number
firstIndex?
number
baseVertex?
number
firstInstance?
number
Returns
void
draw()
draw(
encoder,vertexCount,instanceCount?,firstVertex?,firstInstance?):void
Defined in: src/gfx/renderJob/GPUContext.ts:280
Non-indexed draw. No-ops when vertexCount or instanceCount is zero.
Parameters
encoder
GPURenderPassEncoder
vertexCount
number
instanceCount?
number
firstVertex?
number
firstInstance?
number
Returns
void
endPass()
endPass(
encoder):void
Defined in: src/gfx/renderJob/GPUContext.ts:290
End the given render pass.
Parameters
encoder
GPURenderPassEncoder
Returns
void
computeCommand()
computeCommand(
command,computes):void
Defined in: src/gfx/renderJob/GPUContext.ts:296
Run a list of compute shaders inside a single compute pass on command.
Parameters
command
GPUCommandEncoder
computes
ComputeShader[]
Returns
void
copyTexture()
copyTexture(
command,source,dest):void
Defined in: src/gfx/renderJob/GPUContext.ts:306
Copy mip 0 of source into mip 0 of dest, sized to dest.
Parameters
command
GPUCommandEncoder
source
dest
Returns
void

