Games Task Scheduler (GTS)
A multi-processor scheduling framework for games engines
|
Modules | |
Assert | |
Atomics | |
Machine | |
Memory | |
Thread | |
Utilities | |
Classes | |
class | gts::InstructionSet |
Functions | |
GTS_INLINE bool | gts::Thread::start (ThreadFunction function, void *pArg, uint32_t stackSize=DEFAULT_STACK_SIZE) |
Starts a thread. | |
GTS_INLINE bool | gts::Thread::join () |
GTS_INLINE bool | gts::Thread::destroy () |
Destroys the internal resource, if any. | |
GTS_INLINE ThreadId | gts::Thread::getId () |
Returns the handle's unique ID. | |
GTS_INLINE bool | gts::Thread::setAffinity (size_t groupId, AffinitySet const &affinity) |
Sets the processor affinity for the thread and returns the previous affinity. | |
GTS_INLINE bool | gts::Thread::setPriority (Priority priority) |
Sets the priority for the thread. | |
static GTS_INLINE void | gts::Thread::getSystemTopology (SystemTopology &out) |
Gets the topology of all the processors in the system. | |
static GTS_INLINE uint32_t | gts::Thread::getHardwareThreadCount () |
Gets the number of logical processor on this system. | |
static GTS_INLINE void | gts::Thread::getCurrentProcessorId (uint32_t &groupId, uint32_t &hwTid) |
Gets the current group and hardware thread IDs. | |
static GTS_INLINE void | gts::ThisThread::yield () |
Yields to another thread on this CPU. (i.e. SwitchToThread on Win32) | |
static GTS_INLINE void | gts::ThisThread::sleepFor (uint32_t milliseconds) |
Yields to another thread in this process. (i.e. Sleep(...) on Win32) | |
static GTS_INLINE ThreadId | gts::ThisThread::getId () |
Gets the current threads ID. | |
static GTS_INLINE void | gts::ThisThread::setName (const char *name) |
Sets the name of the thread. | |
static GTS_INLINE bool | gts::ThisThread::setAffinity (size_t groupId, AffinitySet const &affinity) |
Sets the processor affinity for the thread and returns the previous affinity. | |
static GTS_INLINE bool | gts::ThisThread::setPriority (Thread::Priority priority) |
Sets the priority for the thread. | |
bool | gts::BinarySemaphore::isWaiting () |
bool | gts::BinarySemaphore::wait () |
void | gts::BinarySemaphore::signal () |
void | gts::BinarySemaphore::reset () |
Variables | |
uint32_t * | gts::CpuCoreInfo::pHardwareThreadIds = nullptr |
The ID for each hardware thread in the core. | |
size_t | gts::CpuCoreInfo::hardwareThreadIdCount = 0 |
The number of elements in pHardwareThreadIds. | |
uint8_t | gts::CpuCoreInfo::efficiencyClass = 0 |
The efficiency of this core. {0,.., n} => {min,.., max}. | |
CpuCoreInfo * | gts::SocketInfo::pCoreInfoArray = nullptr |
A array of descriptions for each processor core in the socket. | |
size_t | gts::SocketInfo::coreInfoElementCount = 0 |
The number of elements in pCoreInfoArray. | |
CpuCoreInfo * | gts::NumaNodeInfo::pCoreInfoArray = nullptr |
A array of descriptions for each processor core in the node. | |
size_t | gts::NumaNodeInfo::coreInfoElementCount = 0 |
The number of elements in pCoreInfoArray. | |
size_t | gts::NumaNodeInfo::nodeId = SIZE_MAX |
The ID of the node. | |
CpuCoreInfo * | gts::ProcessorGroupInfo::pCoreInfoArray = nullptr |
A array of descriptions for each processor core in the group. | |
size_t | gts::ProcessorGroupInfo::coreInfoElementCount = 0 |
The number of elements in pCoreInfoArray. | |
NumaNodeInfo * | gts::ProcessorGroupInfo::pNumaInfoArray = nullptr |
A array of descriptions for each NUMA node. | |
size_t | gts::ProcessorGroupInfo::numaNodeInfoElementCount = 0 |
The number of elements in pNumaInfoArray. | |
SocketInfo * | gts::ProcessorGroupInfo::pSocketInfoArray = nullptr |
A array of descriptions for each socket. | |
size_t | gts::ProcessorGroupInfo::socketInfoElementCount = 0 |
The number of elements in pSocketInfoArray. | |
uint32_t | gts::ProcessorGroupInfo::groupId = 0 |
The ID of the group. | |
ProcessorGroupInfo * | gts::SystemTopology::pGroupInfoArray = nullptr |
A array of descriptions for each processor group. | |
size_t | gts::SystemTopology::groupInfoElementCount = 0 |
The number of elements in pGroupInfoArray. | |
Platform specific functionality
|
inline |