Games Task Scheduler (GTS)
A multi-processor scheduling framework for games engines
|
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 Task * | execute (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 Task * | doExecute (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) |
Recursively splits a range and tries to limit number of splits to the number of workers in the executing scheduler.