Games Task Scheduler (GTS)
A multi-processor scheduling framework for games engines
ParallelPatterns

Classes

class  gts::KdRange2d< TIterType >
 An iteration range over a 2D data set. Splits occur along the largest dimension unless the minimum size is reached for all dimensions. Successive splits result in a Kd-tree where each leaf represents a unit of work. More...
 
class  gts::KdRange3d< TIterType >
 An iteration range over a 3D data set. Splits occur along the largest dimension unless the minimum size is reached for all dimensions. Successive splits result in a Kd-tree where each leaf represents a unit of work. More...
 
class  gts::OctRange< TIterType >
 An iteration range over a 3D data set. Splits divide each dimension in half for each dimension that is divisible. Successive splits result in a oct-tree where each leaf represents a unit of work. More...
 
class  gts::ParallelFor
 A construct that maps parallel-for behavior to a MicroScheduler. More...
 
class  gts::ParallelReduce
 A construct that maps parallel-reduce behavior to a MicroScheduler. More...
 
class  gts::DependencyArray< TValRange, TDepRange, DIMENSIONALITY >
 
class  gts::DependencyArray< TValRange, TDepRange, 2 >
 
struct  gts::LaunchTask< DIMENSIONALITY >
 
struct  gts::LaunchTask< 2 >
 
struct  gts::LaunchTask< 3 >
 
class  gts::ParallelWavefront
 A construct that maps a parallel-wavefront behavior to a MicroScheduler. More...
 
class  gts::SimplePartitioner
 Recursively splits a range until it is no longer divisible. More...
 
class  gts::StaticPartitioner
 Recursively splits a range and tries to limit number of splits to the number of workers in the executing scheduler. More...
 
class  gts::QuadRange< TIterType >
 An iteration range over a 3D data set. Splits divide each dimension in half for each dimension that is divisible. Successive splits results in a quad-tree where each leaf represents a unit of work. More...
 
class  gts::Range1d< Iter >
 An iteration range over a 1D data set. Splits divide the range in two based unless the minimum size is reached. Splits are determined by a splitter object. Successive splits result in a binary tree where each leaf represents a unit of work. More...
 
struct  gts::SplitResult< TRange, MaxSplits, Dimesionality >
 The resulting Ranges of a Range split. More...
 
struct  gts::SplitResult< TRange, MaxSplits, 1 >
 The resulting Ranges of a 1D Range split. More...
 
struct  gts::SplitResult< TRange, MaxSplits, 2 >
 The resulting Ranges of a 2D Range split. More...
 
struct  gts::SplitResult< TRange, MaxSplits, 3 >
 The resulting Ranges of a 3D Range split. More...
 
struct  gts::EvenSplitter
 Indicates that a Range is to be split in half. More...
 
struct  gts::ProportionalSplitter
 Indicates that a Range is to be split in proportionally. More...
 

Typedefs

using gts::range_size_t = uint8_t
 

Detailed Description