Skip to content

ExecutionContext

Overview

TODO: doc

@author Jonathan Olson <jonathan.olson@colorado.edu>

Class ExecutionContext

import { ExecutionContext } from 'scenerystack/alpenglow';

Constructor

new ExecutionContext( executor : Executor, computePipelineMap : Map<PipelineBlueprint, ComputePipeline>, bindGroupMap : Map<BindGroupLayout, BindGroup>, resourceMap : Map<ResourceSlot, Resource>, separateComputePasses : boolean )

Instance Methods

dispatch( pipelineBlueprint : PipelineBlueprint, dispatchX, dispatchY, dispatchZ )

dispatchIndirect( pipelineBlueprint : PipelineBlueprint, indirectBuffer : GPUBuffer, indirectOffset : number )

getEncoderForCustomRender() : GPUCommandEncoder

TODO: see if we can get the bind groups to be optimized?

setTypedBufferValue( bufferSlot : BufferSlot<T>, value : T )

getTypedBufferValue( bufferSlot : BufferSlot<T> ) : Promise<T>

arrayBuffer( bufferSlot : BufferSlot<T> ) : Promise<ArrayBuffer>

u32( bufferSlot : BufferSlot<T> ) : Promise<Uint32Array>

i32( bufferSlot : BufferSlot<T> ) : Promise<Int32Array>

f32( bufferSlot : BufferSlot<T> ) : Promise<Float32Array>

u32Numbers( bufferSlot : BufferSlot<T> ) : Promise<number[]>

i32Numbers( bufferSlot : BufferSlot<T> ) : Promise<number[]>

f32Numbers( bufferSlot : BufferSlot<T> ) : Promise<number[]>

finish()

Source Code

See the source for ExecutionContext.ts in the alpenglow repository.