Games Task Scheduler (GTS)
A multi-processor scheduling framework for games engines
|
A generalized DAG scheduler utilizing work stealing. This scheduler delegates its responsibilities to a MicroScheduler. More...
#include <CentralQueue_MacroScheduler.h>
Inherits gts::MacroScheduler.
Public Member Functions | |
virtual bool | init (MacroSchedulerDesc const &desc) final |
virtual Schedule * | buildSchedule (Node *pStart, Node *pEnd) final |
virtual void | freeSchedule (Schedule *pSchedule) final |
virtual void | executeSchedule (Schedule *pSchedule, ComputeResourceId id) final |
Public Member Functions inherited from gts::MacroScheduler | |
virtual | ~MacroScheduler () |
ComputeResource * | findComputeResource (ComputeResourceId id) |
Vector< ComputeResource * > const & | computeResources () const |
Vector< ComputeResource * > & | computeResources () |
Node * | allocateNode () |
void | destroyNode (Node *pNode) |
Additional Inherited Members | |
Protected Member Functions inherited from gts::MacroScheduler | |
void * | _allocateWorkload (size_t size) |
void | _freeWorkload (void *ptr) |
Protected Attributes inherited from gts::MacroScheduler | |
Vector< ComputeResource * > | m_computeResources |
A generalized DAG scheduler utilizing work stealing. This scheduler delegates its responsibilities to a MicroScheduler.
|
finalvirtual |
Builds a schedule from the specified DAG that begins at 'pStart' and ends at 'pEnd'.
Implements gts::MacroScheduler.
|
finalvirtual |
Executes the specified 'pSchedule' and uses the specified ComputeResource 'id' for the calling thread. Setting 'id' to UNKNOWN_COMP_RESOURCE will not use the calling thread.
Implements gts::MacroScheduler.
|
finalvirtual |
Free an existing Schedule from memory.
Implements gts::MacroScheduler.
|
finalvirtual |
Initializes the IMacroScheduler object based on 'desc'.
Implements gts::MacroScheduler.