Games Task Scheduler (GTS)
A multi-processor scheduling framework for games engines
gts::StaticPartitioner Class Reference

Recursively splits a range and tries to limit number of splits to the number of workers in the executing scheduler. More...

#include <Partitioners.h>

Public Types

using splitter_type = ProportionalSplitter
 

Public Member Functions

template<typename TRange >
GTS_INLINE StaticPartitioner (StaticPartitioner &partitioner, uint16_t, TRange const &)
 
template<typename TPattern , typename TRange >
GTS_INLINE Taskexecute (TaskContext const &ctx, TPattern *pPattern, TRange &range)
 
template<typename TPattern , typename TRange >
GTS_INLINE void initialOffer (TaskContext const &ctx, TPattern *pPattern, TRange &range, splitter_type const &splitter)
 
template<typename TPattern , typename TRange >
GTS_INLINE TaskdoExecute (TaskContext const &ctx, TPattern *pPattern, TRange &range, splitter_type const &splitter)
 
template<typename TRange >
GTS_INLINE void adjustIfStolen (Task *)
 
template<typename TRange >
GTS_INLINE void initialize (uint16_t workerCount)
 
template<typename TRange >
GTS_INLINE void split ()
 
GTS_INLINE bool isDivisible ()
 

Static Public Member Functions

template<typename TRange >
static GTS_INLINE uint16_t getSplit (StaticPartitioner &partitioner)
 

Detailed Description

Recursively splits a range and tries to limit number of splits to the number of workers in the executing scheduler.