Lysa  0.0
Lysa 3D Engine
GenerateDrawCommands Class Reference

Detailed Description

Compute pipeline that generates DrawCommand entries entirely on the GPU.

Public Member Functions

 GenerateDrawCommands (pipeline_id pipelineId, const vireo::Buffer &activeInstancesBuffer, const DeviceMemoryArray &instancesArray, const DeviceMemoryArray &meshInstancesArray, const vireo::Buffer &drawCommandsBuffer, const vireo::Buffer &drawCommandsCountBuffer)
 
void dispatch (vireo::CommandList &commandList, uint32 activeInstancesCount)
 
virtual ~GenerateDrawCommands () = default
 
 GenerateDrawCommands (GenerateDrawCommands &) = delete
 
GenerateDrawCommands & operator= (GenerateDrawCommands &) = delete
 

Static Public Member Functions

static void cleanup ()
 

Constructor & Destructor Documentation

GenerateDrawCommands ( pipeline_id  pipelineId,
const vireo::Buffer &  activeInstancesBuffer,
const DeviceMemoryArray instancesArray,
const DeviceMemoryArray meshInstancesArray,
const vireo::Buffer &  drawCommandsBuffer,
const vireo::Buffer &  drawCommandsCountBuffer 
)

Constructs a GpuDrawSetup pipeline.

Parameters
pipelineIdIdentifier of the parent material pipeline (debug names).
activeInstancesBufferGPU buffer of active instanceIndex values
instancesBufferGlobal instances buffer
meshInstancesBufferScene meshInstances buffer
drawCommandsBufferOutput DrawCommand buffer.
drawCommandsCountBufferAtomic counter buffer, reset each frame.
virtual ~GenerateDrawCommands ( )
virtualdefault
GenerateDrawCommands ( GenerateDrawCommands &  )
delete

Member Function Documentation

static void cleanup ( )
static

Releases shared (static) GPU resources. Call once at shutdown.

void dispatch ( vireo::CommandList &  commandList,
uint32  activeInstancesCount 
)

Clears the counter then dispatches the compute shader.

Parameters
commandListCommand list to record into.
activeInstancesCountNumber of entries in activeInstancesBuffer.
GenerateDrawCommands& operator= ( GenerateDrawCommands &  )
delete